2017-07-17 19 views
0

全部,用簡單整數返回SQL_NEED_DATA

我有一個奇怪的情況。我修改了其中一個查詢,添加了類型爲int的第三個參數,現在正嘗試將整數值綁定到它。呼叫如下:

ret = SQLBindParameter(stmt_tableProp, 3, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER, 0, 0, &tableId, 0, &cbId); 

tableId的值是171147655

添加此函數後,對SQLExecute()的調用開始返回SQL_NEED_DATA。

表中的列是integer類型。

我不明白這一點 - 我沒有通過大數據查詢,我沒有使用BLOB。

爲什麼我會得到SQL_NEED_DATA?

如果我把3參數取出,一切都可以再次運作。

有人可以幫忙嗎?

TIA!

+0

那麼SQLBindParameter是否會返回錯誤,或者如果在執行查詢時發生錯誤,SQLBindParameter是否返回錯誤? –

+0

@JerryJeremiah,SQLBindParameter執行成功。它是SQLExecute(),它給出了SQL_NEED_DATA。 – Igor

回答

0

如果SQLBindParameter函數(StrLen_or_IndPtr)的最後一個參數設置爲SQL_DATA_AT_EXEC,則會發生此行爲。

你應該檢查你的cbId變量的值。

如果您未初始化提供的變量,該錯誤似乎也會發生。