sql >> Base de Datos >  >> RDS >> Mysql

Cómo configurar datos binarios usando setBlob() en el conector C++

Esta publicación es un poco antigua, pero me encontré con la misma pregunta. Utilicé el método anterior y no funcionó del todo bien para mi caso, que estaba tratando de tomar un vector y usarlo para la transmisión. Lo que estaba haciendo era tomar un UUID y convertirlo en una versión binaria de 16 bytes para usar en la tabla. Usando el método anterior, descubrí que solo se estaba llenando la mitad de mi búfer.

Terminé usando 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);

Algunas otras cosas a tener en cuenta. No se accede a la secuencia hasta que uno de los execute se llama variantes. Por lo tanto, deberá mantener la transmisión hasta que haya ejecutado execute .

Con suerte, esto ayudará a alguien y les ahorrará tiempo.