表示C++中的 BLOB
representing BLOBs in C++
是否有任何STL容器似乎非常适合用作数据库软件的BLOB?我会认为vector<char>
,但还有更好的东西吗?也许是std::string
?还是一些非 STL 容器?
BLOB
类型的数据库允许存储二进制数据,因此您需要字节的有序集合。 最简单的选择是vector<>
,您可以选择unsigned char
来表示大多数平台上的字节
我们在其中一个项目中使用了stream
来表示存储在数据库中的 BLOB/CLOB 值。我认为这在大多数情况下是最好的方法,因为根据定义,BLOB/CLOB 可能非常大,可以放入内存中。
编写自己的stream
实现,并像任何其他stream
一样使用它。
我目前正在使用std::string
来存储blob,因为我正在使用Google的Protocol Buffers库进行对象序列化,这就是他们使用的(例如,MessageLite::SerializeToString(。它非常适合我的目的,因为将生成的字符串作为 blob 插入到 SQLite 数据库中非常简单:
sqlite3_bind_blob(_insert_statement, 3, data.c_str(), data.size(), SQLITE_STATIC);
(data
是一个std::string
被绑定为_insert_statement
的第三个参数。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- .cpp和.h文件中的模板专用化声明
- 反向给定链表中的K节点
- 正在查找文档以获得PS4平台的C++中的设备信息
- enum是C++中的宏变量还是整数变量
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 给一个图 G 找到此图中的所有节点 blob,以便 node.color 属性 = 特定颜色
- MySQL c++ 连接器:使用 SetBlob() 在查询中设置多个 blob 数据的正确方法是什么?
- 当我调用它来解码 Blob 对象中的 png 图像时,"Magick++::readImages"引发警告
- 错误:使用 tesseract 引擎时 C++ 中的声明'typedef struct tagBLOB BLOB'冲突
- C++驱动程序中 Blob 类型的映射
- Cassandra 中的 blob 数据类型
- 如何在使用 GPU 时更改 Caffe2 中的 blob 值 (C++)
- ODBC c ++(预言机)中的空 blob 插入查询
- 表示C++中的 BLOB
- 将图像作为blob类型插入QT C++中的数据库
- 使用cvblobslib和opencv(c++)减少实时二进制b/w网络摄像头馈送的blob检测过程中的延迟
- 获取存储在blob中的MySQL映像大小
- 在c++中使用OpenCV查找每个blob中的像素数
- mysql数据库c++中存储blob数据的语法