MySQL,C ++:需要Blob大小来读取blob数据

时间:2010-02-24 20:19:31

标签: c++ mysql visual-studio-2008 blob

如何在结果集中的BLOB字段中获取数据大小? (使用C ++和MySQL Connector C ++)

为了从结果集中读取数据,我先为它分配内存。为了分配内存,我需要知道结果集中blob数据的大小。

搜索网络和StackOverflow,我找到了两种方法:OCTECT和BLOB流。

找到BLOB大小的一种方法是使用OCTECT()函数,这需要一个新的查询并生成一个新的结果集。我宁愿不使用这种方法。

另一种方法是使用blob流并搜索到最后,并获取文件位置。但是,我不知道是否可以将流重绕到开头以便读取数据。此方法需要额外读取整个流。

MySQL Connector C ++ 1.0.5 ResultSetResultSetMetaData接口不提供获取字段(列)中数据大小的方法。< / p>

在给定结果集和字段名称的情况下,是否存在获取BLOB字段中数据大小的过程?

我正在使用MySQL Connector C ++ 1.0.5,C ++,Visual Studio 2008,Windows Vista / XP和“Server version:5.1.41-community MySQL Community Server(GPL)”。

1 个答案:

答案 0 :(得分:3)

您可以选择以下选项:

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

其中content是BLOB字段。

的问候。 见:LENGTH(str)