Dit bericht is een beetje oud, maar ik kwam dezelfde vraag tegen. Ik gebruikte de bovenstaande methode en het werkte niet helemaal goed voor mijn geval, dat probeerde een vector te nemen en die voor de stream te gebruiken. Wat ik aan het doen was, was een UUID nemen en deze omzetten in een binaire versie van 16 bytes om in de tabel te gebruiken. Met behulp van de bovenstaande methode ontdekte ik dat slechts de helft van mijn buffer werd gevuld.
Ik heb uiteindelijk een stringstream
gebruikt .
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);
Een paar andere dingen om in gedachten te houden. De stream is pas toegankelijk als een van de execute
varianten wordt genoemd. Je moet de stream dus in de buurt houden totdat je execute
. hebt uitgevoerd .
Hopelijk helpt dit iemand en bespaart het tijd.