4

データベースソフトウェアのBLOBとして使用するのに適していると思われるSTLコンテナはありますか?私は思うでしょうがvector<char>、もっと良いものはありますか?多分std::string?または、STL以外のコンテナですか?

4

3 に答える 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 に答える