sql >> Database >  >> RDS >> Mysql

Hoe binaire gegevens in te stellen met setBlob() in de C++-connector

Dit bericht is een beetje oud, maar ik kwam dezelfde vraag tegen. Ik gebruikte de bovenstaande methode en het werkte niet helemaal goed voor mijn geval, dat probeerde een vector te nemen en die voor de stream te gebruiken. Wat ik aan het doen was, was een UUID nemen en deze omzetten in een binaire versie van 16 bytes om in de tabel te gebruiken. Met behulp van de bovenstaande methode ontdekte ik dat slechts de helft van mijn buffer werd gevuld.

Ik heb uiteindelijk een stringstream gebruikt .

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);

Een paar andere dingen om in gedachten te houden. De stream is pas toegankelijk als een van de execute varianten wordt genoemd. Je moet de stream dus in de buurt houden totdat je execute . hebt uitgevoerd .

Hopelijk helpt dit iemand en bespaart het tijd.



  1. MySQL - Welke Hash Algo moet ik hiervoor gebruiken?

  2. Een inleiding tot Hadoop en Big Data

  3. Hoe voeg ik een nieuwe kolom toe aan de MYSQL-tabel?

  4. 8 functies om de dag te retourneren vanaf een datum in MariaDB