诊断信息获取

ODBC接口通过SQLGetDiagRec接口来获得错误信息,SQLGetDiagRec接口需要传入句柄类型和句柄地址,以及错误序号(默认0,返回最顶层的一个错误),返回错误号,错误信息、错误状态码。

使用样例如下:

Void checkerr(SQLRETURN result)
{
    SQLCHAR errmsg[10];
    SQLINTEGER errint;
    SQLSMALLINT  errind;
    SQLCHAR errdesc[512];
    int errLineNum = 0 ;

    if(result == SQL_SUCCESS )
        printf("Successfully!\n");
    else{
        if(result == SQL_SUCCESS_WITH_INFO){
            printf("Successfully with info!\n");
        }else{
            printf("Failed!\n");
            }
        errLineNum = 0;
        if(SQL_NO_DATA!=SQLGetDiagRec(SQL_HANDLE_DBC, hdbc, ++errLineNum, errmsg, &errint, (SQLCHAR *)errdesc, (SQLSMALLINT)500, &errind)){
            printf("%s: %s\n", errmsg, errdesc);
        }
    errLineNum = 0;
    if(SQL_NO_DATA!=SQLGetDiagRec(SQL_HANDLE_STMT, hstmt, ++errLineNum, errmsg, &errint, (SQLCHAR *)errdesc, (SQLSMALLINT)500, &errind)){
        printf("%s: %s\n", errmsg, errdesc);
        }
    }
}