Ten post jest trochę stary, ale natknąłem się na to samo pytanie. Zastosowałem powyższą metodę i nie działała ona dobrze w moim przypadku, w którym próbowałem wziąć wektor i użyć go do strumienia. Wziąłem UUID i przekonwertowałem go na 16-bajtową wersję binarną do wykorzystania w tabeli. Stosując powyższą metodę, odkryłem, że tylko połowa mojego bufora była zapełniana.
Skończyło się na użyciu 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);
Kilka innych rzeczy, o których warto pamiętać. Dostęp do strumienia jest możliwy dopiero po jednym z execute
warianty to tzw. Musisz więc utrzymywać strumień, dopóki nie uruchomisz execute
.
Mam nadzieję, że to komuś pomoże i oszczędzi czas.