2013-03-27 66 views
0

我可以用這種方式檢索帶有SQLGetData的ntext列。ODBC,C++,從第一列中檢索ntext

retCode = SQLGetData(input_hstmt, column, SQL_C_BINARY, 
      target_ptr, NULL, &binding_ref.buffer_length); 
target_ptr = new BYTE[buffer_length + 1]; 
retCode = SQLGetData(input_hstmt, column, SQL_C_WCHAR, 
      target_ptr, buffer_length + 1, &strlen_or_ind); 

問題是還有其他列,我想要綁定和SQLFetch之後使用它們。對於使用SQLGetData,從中檢索的列的數量必須大於綁定列的最大數量。什麼是檢索數據的最正確方法? 例如對列進行排序並以正確的順序檢索它們,避免使用SQLFetch,還有其他什麼?

回答

0

我不確定是否有一個「正確的」解決方案,它只是SQL Server驅動程序的一個功能,它可以將數據從TDS輸入緩衝區中讀出,就像SQLGetData一樣。但是,您可以通過將光標類型設置爲可滾動來解決此問題。在使用遊標時,SQL Server不會默認返回大對象,並且在您調用SQLGetData時會返回到數據庫。它不理想,但可能會幫助你解決問題。