Det här inlägget är lite gammalt, men jag stötte på samma fråga. Jag använde metoden ovan och den fungerade inte riktigt för mitt fall, som försökte ta en vektor och använda den för strömmen. Det jag gjorde var att ta ett UUID och konvertera det till en 16 byte binär version att använda i tabellen. Med metoden ovan upptäckte jag att bara halva min buffert fylldes på.
Det slutade med att jag använde en 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);
Några andra saker att tänka på. Strömmen nås inte förrän en av execute
varianter kallas. Så du måste behålla strömmen tills du har kört execute
.
Förhoppningsvis kommer detta att hjälpa någon och spara tid.