Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да зададете двоични данни с помощта на setBlob() в C++ конектор

Тази публикация е малко стара, но попаднах на същия въпрос. Използвах метода по-горе и той не работи точно за моя случай, който се опитваше да вземе вектор и да го използва за потока. Това, което правех, беше да взема UUID и да го преобразувам в 16 байтова двоична версия, за да използвам в таблицата. Използвайки метода по-горе, установих, че само половината ми буфер се попълва.

В крайна сметка използвах 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);

Няколко други неща, които трябва да имате предвид. До потока не се осъществява достъп до едно от execute варианти се нарича. Така че ще трябва да поддържате потока, докато не изпълните execute .

Надяваме се, че това ще помогне на някого и ще му спести време.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Фатална грешка:Извикване на недефиниран метод mysqli_stmt::get_result()

  2. Публикувайте MySQL резултат с помощта на AJAX чрез jQuery

  3. Използване на Python за достъп до SQL с променливо име на колона

  4. jQuery + PHP Autocomplete

  5. Преобразуване на оператор за сливане в MYSQL с помощта на дублиран ключ