Dette indlæg er lidt gammelt, men jeg stødte på det samme spørgsmål. Jeg brugte metoden ovenfor, og den fungerede ikke helt rigtigt for mit tilfælde, som prøvede at tage en vektor og bruge den til streamen. Det, jeg lavede, var at tage en UUID og konvertere den til en 16 byte binær version til brug i tabellen. Ved at bruge metoden ovenfor fandt jeg ud af, at kun halvdelen af min buffer blev udfyldt.
Jeg endte med at bruge 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);
Et par andre ting at huske på. Streamen er ikke tilgået, før en af execute
varianter kaldes. Så du bliver nødt til at beholde strømmen, indtil du har kørt execute
.
Forhåbentlig vil dette hjælpe nogen og spare dem tid.