Posting ini agak lama, tetapi saya menemukan pertanyaan yang sama. Saya menggunakan metode di atas dan itu tidak berfungsi dengan baik untuk kasus saya, yang mencoba mengambil vektor dan menggunakannya untuk aliran. Apa yang saya lakukan adalah mengambil UUID dan mengubahnya menjadi versi biner 16 byte untuk digunakan dalam tabel. Menggunakan metode di atas, saya menemukan bahwa hanya setengah buffer saya yang terisi.
Saya akhirnya menggunakan 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);
Beberapa hal lain yang perlu diingat. Aliran tidak diakses sampai salah satu execute
varian disebut. Jadi, Anda harus tetap menjalankan streaming sampai Anda menjalankan execute
.
Semoga ini akan membantu seseorang dan menghemat waktu mereka.