诊断信息获取¶
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);
}
}
}