我一直在玩Row-Wise,Column-Wise和參數綁定,試圖找到一種方法來指向VARCHAR列的非順序數組緩衝區返回。C++使用ODBC綁定參數預先確定VARCHAR的長度
返回可能有10個字符或8000個字符。我不想顯式分配8000 x nRows字節的內存,所以我一直在用更好的方式進行操作。
第一個明顯的方法是8000個字節長,然後一旦SqlFetchO()返回列長度來分配緩衝器,分配正確的大小的返回和複製過來。由於副本價格昂貴,我試圖避免這種情況。
我接下來的想法是發出兩個SELECT語句。第一是:
SELECT DATALENGTH(Description) from SpecialOffer WHERE MinQty > 0
我不知道有多貴,這是的,但假設沒有數據實際上是從數據庫複製,以及2字節長度字段是剛讀,這可能是快?在執行第二個查詢之前,我可以爲每個成員分配一個具有確切長度的數組。
有沒有辦法在SQL Server中檢索行之前獲取確切的VARCHAR列長度信息?
此外,有沒有什麼方法可以使用指定指向緩衝區指針的指針(即ODBC驅動程序所需的雙重引用)。這將允許我使用Row-Wise綁定和一個指向緩衝區的指針數組(使用第二種技術)。