データベースソフトウェアのBLOBとして使用するのに適していると思われるSTLコンテナはありますか?私は思うでしょうがvector<char>
、もっと良いものはありますか?多分std::string
?または、STL以外のコンテナですか?
5888 次
3 に答える
9
データベースのBLOB
タイプではバイナリデータを保存できるため、順序付けられたバイトのコレクションが必要です。最も簡単な選択はであり、ほとんどのプラットフォームでバイトを表すvector<>
ことを選択できますunsigned char
于 2012-05-20T10:25:43.513 に答える
2
プロジェクトの1つでsを使用stream
して、データベースに格納されているBLOB/CLOB値を表しました。BLOB / CLOBは定義上メモリに収まるほど大きくなる可能性があるため、これがほとんどの場合最良のアプローチだと思います。
独自の実装を作成し、stream
他の実装と同じように使用しますstream
。
于 2012-05-20T10:25:12.720 に答える
2
オブジェクトのシリアル化にGoogleのProtocolBuffersライブラリを使用しているため、現在std::string
、blobの格納に使用しています。これは、BLOBが使用するものです(例: MessageLite :: SerializeToString)。結果の文字列をblobとしてSQLiteデータベースに挿入するのは非常に簡単なので、私の目的にはうまく機能します。
sqlite3_bind_blob(_insert_statement, 3, data.c_str(), data.size(), SQLITE_STATIC);
(data
は、std::string
の3番目の引数としてバインドされています_insert_statement
。)
于 2012-05-20T15:24:08.773 に答える