Ce post date un peu, mais je suis tombé sur la même question. J'ai utilisé la méthode ci-dessus et cela n'a pas tout à fait fonctionné pour mon cas, qui essayait de prendre un vecteur et de l'utiliser pour le flux. Ce que je faisais consistait à prendre un UUID et à le convertir en une version binaire de 16 octets à utiliser dans le tableau. En utilisant la méthode ci-dessus, j'ai constaté que seule la moitié de mon tampon était remplie.
J'ai fini par utiliser 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);
Quelques autres choses à garder à l'esprit. Le flux n'est pas accessible jusqu'à ce que l'un des execute
variantes est appelée. Vous devrez donc conserver le flux jusqu'à ce que vous ayez exécuté execute
.
J'espère que cela aidera quelqu'un et lui fera gagner du temps.