sql >> Databáze >  >> RDS >> Mysql

Jak nastavit binární data pomocí setBlob() v konektoru C++

Tento příspěvek je trochu starý, ale narazil jsem na stejnou otázku. Použil jsem výše uvedenou metodu a v mém případě to nefungovalo správně, když jsem se snažil vzít vektor a použít jej pro stream. To, co jsem dělal, bylo vzít UUID a převést ho na 16bajtovou binární verzi pro použití v tabulce. Pomocí výše uvedené metody jsem zjistil, že se zaplňuje pouze polovina mé vyrovnávací paměti.

Nakonec jsem použil 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);

Několik dalších věcí, které je třeba mít na paměti. Ke streamu se přistoupí až po jednom z execute se nazývá varianty. Takže budete muset nechat stream, dokud nespustíte execute .

Snad to někomu pomůže a ušetří čas.



  1. Jaký je připojovací řetězec sql, který musím použít pro přístup k localhost\SQLEXPRESS s ověřováním Windows nebo ověřováním SQL?

  2. MySQL:Pokud funkci v dotazu SQL použiji více než jednou, přepočítá se pokaždé?

  3. MySql varchar změna z Latin1 na UTF8

  4. sql join two table