sql >> Database teknologi >  >> RDS >> Mysql

Sådan indstilles binære data ved hjælp af setBlob() i C++-stikket

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.



  1. SQL-parameteriseret forespørgsel med LIKE '% ? %' PHP

  2. gem install pg --with-pg-config virker, bundt mislykkes

  3. Opret dynamisk PHP-objekt baseret på streng

  4. Sådan får du alle data fra 2 tabeller ved hjælp af fremmednøgle