0
我上的應用程序,其中如果未給出此特定錯誤信息的工作,它會被忽略:爲什麼我的strcmp失敗?
[甲骨文] [ODBC] [奧拉] ORA-24338:處理不執行的語句
我比較代碼如下:
char Sqlstate[10];
long NativeErrorPtr;
char MessageText[1024];
long BufferLength=1024;
long TextLengthPtr;
SQLGetDiagRec(SQL_HANDLE_STMT,sqlc.g_hstmt,1,(SQLCHAR *) Sqlstate,(SQLINTEGER *) &NativeErrorPtr,
(SQLCHAR *) MessageText,(SQLSMALLINT) BufferLength,(SQLSMALLINT *) &TextLengthPtr);
success=false;
char* msg = MessageText;
char* oracleMsg = "[Oracle][ODBC][Ora]ORA-24338: statement handle not executed";
int i = strcmp(msg, oracleMsg);
我得到i ==1
。當我將鼠標懸停在msg
和oracleMsg
上時,它們看起來完全一樣。這裏是來自每個變量的複製文本。
oracleMsg 0x00c1cd88 「[甲骨文] [ODBC] [奧拉] ORA-24338:語句句柄不執行」 的char *
味精0x0132d0a4「[甲骨文] [ODBC] [奧拉] ORA-24338:聲明句柄未執行「char *
可能錯誤消息不以NULL結尾。 'msg [TextLengthPtr] = 0;'。 – ibre5041 2015-03-02 15:07:15
當我嘗試添加該代碼時,出現未處理的異常'訪問衝突寫入位置0xcd81cf88'。 – 2015-03-02 15:12:56
嘗試使用strncmp代替 – ibre5041 2015-03-02 15:22:46