この投稿は少し古いですが、私は同じ質問に出くわしました。私は上記の方法を採用しましたが、ベクトルを取得してそれをストリームに使用しようとした私の場合には、正しく機能しませんでした。私が行っていたのは、UUIDを取得し、それを16バイトのバイナリバージョンに変換してテーブルで使用することでした。上記の方法を使用すると、バッファの半分しか入力されていないことがわかりました。
最終的にstringstream
を使用しました 。
std::vector<unsigned char> convertedId;
std::stringstream stream;
// convertedId has been populated with the 16 byte binary version
stream = std::stringstream(std::string(convertedId.begin(), convertedId.end()));
// Parameter 1 is BINARY(16)
pStatement->setBlob(1, &stream);
覚えておくべき他のいくつかのこと。 execute
のいずれかが実行されるまでストリームにアクセスしません バリアントはと呼ばれます。したがって、execute
を実行するまで、ストリームを維持する必要があります。 。
うまくいけば、これは誰かを助け、彼らの時間を節約するでしょう。