Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Przygotowana instrukcja MySql Connector przesyła tylko 64 bajty

Problem leży w konstruktorze pliku obrazu:

std::ifstream   blob_file(filename.c_str());

Powinien mieć atrybut trybu binarnego:

std::ifstream   blob_file(filename.c_str(), std::ios_base::binary);

Plik, obraz JPEG, jest binarny dane.

Ponadto zrzut szesnastkowy w bajcie 65 pokazuje 1a , czyli znak końca pliku w systemie operacyjnym Windows:
0000040 1a 14 1115 1811 1821 1d1a 1f1d 1f1f 1713

Po naprawieniu konstruktora MySql pokazuje rozmiar danych:

mysql> SELECT ID_Picture, LENGTH(Image_Data)
    -> FROM picture_image_data
    -> WHERE ID_Picture = 1;
+------------+--------------------+
| ID_Picture | LENGTH(Image_Data) |
+------------+--------------------+
|          1 |              18453 |
+------------+--------------------+
1 row in set (0.00 sec)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego Magento miałoby nie uratować klienta po wygenerowaniu identyfikatora?

  2. Replikuj Microsoft SQL do innych baz danych

  3. Mnożenie danych z wiersza MySQL

  4. Usuń z jednego stołu z dołącz

  5. MySQL:FULL OUTER JOIN - Jak połączyć jedną kolumnę?