0
我在C中使用ADODB連接。該代碼工作或多或少罰款,但我得到錯誤,當我的查詢沒有結果,我嘗試讀取它。相關代碼:檢測沒有結果在adodb選擇查詢
__object *con, *rec;
con = __object_create("ADODB.Connection");
if(con!=NULL) con->Open("odbc name");
if (con == NULL || con->State==0)
{
return 0;
}
rec= __object_create("ADODB.RecordSet");
sprintf(query, "SELECT SUM(column) FROM table WHERE %s", constraint);
rec->CursorLocation=3;
rec->Open(query, con, 1, 3);
float result = rec->Fields(0); // <- Error here
rec->Close();
__object_delete(rec);
__object_delete(con);
我收到錯誤代碼80020005(類型不匹配)。數據庫列是浮點型。當有記錄符合約束條件時,我得到的結果一切正常。但是,當它與沒有記錄匹配時,數據庫服務器將返回空值,並且出現錯誤。幸運的是結果設置爲0,這是合理的,但我想更好地檢測到這一點。
標準方式(BOF/EOF,Fields-> Count,== NULL,...)全部失敗。我能找到的大多數代碼示例都是針對VB的,而不是C,因此它們並沒有真正的幫助。