Questo post è un po' vecchio, ma mi sono imbattuto nella stessa domanda. Ho utilizzato il metodo sopra e non ha funzionato bene per il mio caso, che stava cercando di prendere un vettore e usarlo per il flusso. Quello che stavo facendo era prendere un UUID e convertirlo in una versione binaria a 16 byte da usare nella tabella. Usando il metodo sopra, ho scoperto che solo metà del mio buffer veniva popolata.
Ho finito per usare un 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);
Alcune altre cose da tenere a mente. Non si accede allo stream fino a quando uno dei execute
si chiama varianti. Quindi dovrai mantenere lo stream attivo finché non avrai eseguito execute
.
Si spera che questo possa aiutare qualcuno e fargli risparmiare tempo.