代码之家  ›  专栏  ›  技术社区  ›  Thomas Matthews

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

  •  1
  • Thomas Matthews  · 技术社区  · 14 年前

    如何获取结果集中blob字段中的数据大小? (使用C++和MySQL连接器C++)

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

    搜索web和stackoverflow,我发现了两种方法: OCTECT 和斑点流。

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

    另一种方法是使用blob流并查找末尾,并获取文件位置。但是,我不知道为了读取数据流是否可以重绕到开头。此方法需要对整个流进行额外的读取。

    这个 ResultSet ResultSetMetaData 界面 MySQL连接器C++1.0.5 不要提供获取字段(列)中数据大小的方法。

    在只给出结果集和字段名的blob字段中,是否有获取数据大小的过程?

    我使用MySQL连接器C++1.0.5、C++、VisualStudio 2008、WindowsVista/XP和“Server版本:5.1.41-Community MySQL社区服务器(GPL)”。

    1 回复  |  直到 14 年前
        1
  •  3
  •   elou    14 年前

    您可以进行如下选择:

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

    其中content是blob字段。

    当做。 见: LENGTH(str)