TADOConnection *MyDatabase;
TADODataSet *adoDS;
위와 같이 선언이 돼있습니다.
MyDatabase->ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;User ID=tcosecuip;Extended Properties=\"DRIVER={MySQL ODBC 5.2 Unicode Driver};PWD=pw;SERVER=10.0.2.5;UID=id;DATABASE=db;PORT=3306;NO_PROMPT=1;AUTO_RECONNECT=1;CHARSET=euckr;SAFE=1;ZERO_DATE_TO_MIN=1\"";
MyDatabase->Connected = true;
adoDS->Connection = MyDatabase;
adoDS->CommandText = "SELECT * FROM test";
adoDS->Open();
while (!adoDS->Eof) {
...
}
test 테이블 안에는 datetime속성인 필드가 있고
값은 0000-00-00 00:00:00 이 들어있습니다.
ConnectionString에서 ZERO_DATE_TO_MIN을 0으로 하면 아무값도 가져오질 못합니다.
(adoDS->Open() 다음에 바로 adoDS->Eof 가 true로 되어 while문 안에 있는 내용을 실행하지 않습니다.)
ZERO_DATE_TO_MIN을 1로 하면 값을 가져오지만 해당 컬럼값을 가져오려고 adoDS->FieldByName("...")->AsString 을 하면
에러가 납니다.
에러문자열은
여러 단계 작업을 하는 동안 오류가 발생했습니다. 각 상태 값을 확인하십시오.
이렇게 나옵니다..ㅠㅠ 정확하게 찝어주질 않네요.
아마 유효하지 않은 datetime값을 가져오려다보니까 에러가 나는것 같은데,
디버깅을 어디서부터 해야할지 감이 안잡히네요.
혹시 이와 같은 문제를 해결하신 분 계실까요..?
|