是否有任何 STL 容器似乎非常适合用作数据库软件的 BLOB?我会想一个vector<char>
,但有更好的吗?也许一个std::string
?还是一些非 STL 容器?
问问题
5888 次
3 回答
9
数据库的BLOB
类型允许存储二进制数据,因此您需要一个有序的字节集合。最简单的选择是 avector<>
并且您可以选择unsigned char
在大多数平台上表示一个字节
于 2012-05-20T10:25:43.513 回答
2
我们stream
在其中一个项目中使用 s 来表示存储在数据库中的 BLOB/CLOB 值。我认为大多数时候这是最好的方法,因为根据定义,BLOB/CLOB 可能非常大,无法放入内存中。
编写stream
您自己的实现并像使用其他任何stream
.
于 2012-05-20T10:25:12.720 回答
2
我目前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
。)
于 2012-05-20T15:24:08.773 回答