ADODB 사용시 상세 에러 메시지는 _com_error 에 없고

커넥션 객체의 Errors 에서 가져와서 봐야 하는데

mssql 은 SqlState를 보면 되고

oracle은 GetNativeError() 를 보면 됨.


http://msdn.microsoft.com/en-us/library/windows/desktop/ms675284(v=vs.85).aspx 샘플 발췌


void PrintProviderError(_ConnectionPtr pConnection) {

    // Print Provider Errors from Connection object.

    // pErr is a record object in the Connection's Error collection.

    ErrorPtr pErr = NULL;


    if ( (pConnection->Errors->Count) > 0) {

        long nCount = pConnection->Errors->Count;

        // Collection ranges from 0 to nCount -1.

        for ( long i = 0 ; i < nCount ; i++) {

            pErr = pConnection->Errors->GetItem(i);

            printf("Error number: %x\t%s\n", pErr->Number, (LPCSTR) pErr->Description);

        }

    }

}


//oracle : long native_error = err->GetNativeError(); // 12571면 연결 못하는 에러

//mssql : string sql_state = err->GetSQLState(); //"08S01"면 연결 못하는 에러


mssql SQL STATE는 : http://msdn.microsoft.com/ko-kr/library/ms714687.aspx 참고
oracle Native Error는 ORA- 뺴고 http://docs.oracle.com/cd/B28359_01/server.111/b28278/toc.htm 참고

'C++' 카테고리의 다른 글

bit 출력  (0) 2013.03.22
qt 4.8.4 컴파일  (0) 2013.03.22
visual studio 2005 서비스팩 설치하기  (0) 2013.03.21
QT 그래프(chart 또는 plot) 라이브러리  (0) 2013.03.19
ETW (event tracing on windows0  (0) 2013.03.14
MFC 콘솔 출력  (0) 2013.03.08
.map 파일과 .cod 파일 분석하기  (0) 2013.02.25
덤프 안남는 경우  (0) 2013.02.25