2010-02-24 44 views
1

如何獲取結果集中BLOB字段中的數據大小?(使用C++和MySQL連接器C++)MySQL,C++:需要Blob大小來讀取blob數據

爲了從結果集中讀取數據,我先爲它分配內存。爲了分配內存,我需要知道結果集中blob數據的大小。

搜索網頁和StackOverflow,我發現了兩種方法:OCTECT和BLOB流。

查找BLOB大小的一種方法是使用OCTECT()函數,該函數需要一個新的查詢並生成一個新的結果集。我寧願不使用這種方法。

另一種方法是使用blob流並查找到底,並獲取文件位置。但是,我不知道該流是否可以重新開始以便讀取數據。此方法需要額外讀取整個流。

MySQL連接C++ 1.0.5ResultSetResultSetMetaData接口不用於在字段(列)獲取的數據的尺寸的方法。

是否有隻獲得結果集和字段名稱的BLOB字段中獲取數據大小的過程?我正在使用MySQL連接器C++ 1.0.5,C++,Visual Studio 2008,Windows Vista/XP和「服務器版本:5.1.41-社區MySQL社區服務器(GPL)」。

回答

3

你可以做一個選擇,如:

select LENGTH(content),content where id=123; 

,其中內容是BLOB字段。

問候。 請參閱:LENGTH(str)

+0

LENGTH()字段的結果集中的字段名稱是什麼? –

+0

應該可以通過索引訪問結果(這裏是1)。 在java中,我會調用'rs.setInt(1)'。 – elou

+1

length()的字段名稱寫爲:'length(content)'。爲了得到一個明智的名字,你必須做'contentLength'或類似的'length(content)'。 –