다음과 같은 질의를 작성하였는데,
큐브리드 매니저에서는 정상 동작합니다. 그러나, VC에서 CDatabase, CRecordset을 이용한 쿼리에서 예외가 발생합니다.
일단 쿼리와 코드는 아래와 같고...
query = \"select F3, (F7 + \' \' + F8 + \' \' + F9) AS ADDRESS \"
\" from T_ZIP_CODE \"
\" where F9 like \'%%1%%\' order by F3 for orderby_num() between 0 and 50\"
CRecordset r(pdb);
r.Open(AFX_DB_USE_DEFAULT_TYPE, query);
while (!r.IsEOF())
{
...
r.GetFieldValue(\"ADDRESS\", str_var); // <-- 오류 위치.
}
위와 같이 F7, F8, F9가 전부 varchar 타입이고 합체해서 \"ADDRESS\"란 이름으로 가져오는데
필드값 fetch 에서 오류가 발생합니다.
o 쿼리 시작부분을 다음과 같이 변경해도 마찬가지...
select F3, F7 + \' \' + F8 + \' \' + F9 ADDRESS .... 또는
select F3, (F7 + \' \' + F8 + \' \' + F9) ADDRESS ..
** 세가지 모두 CUBRID Manager에서는 잘 동작하는군요...
o 또 예외는 CDBException *, CDBException & 둘다 잡히지 않고, catch (...)에서 겨우
잡히네요..
따라서, 예외에 대한 정보가 하나두 없음.. -_-;;
o 기타 참고 :
다른 쿼리에서 서브쿼리는 잘 동작하던데.... 컬럼 + 하는것과 fetch 컬럼의 이름변경이 설마 문제가 될까요 ?
답변 부탁드립니다. 미리 감사..
|