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

Dlaczego otrzymuję błąd JPEG 42, gdy jest on przechowywany w bazie danych?

Błąd JPEG 42 jest zgłaszany, gdy strumień jest obcinany. Na przykład, jeśli spróbujesz załadować plik o zerowej długości do TJPEGImage wtedy błąd 42 jest wynikiem końcowym.

Jeśli wyświetlają się niektóre obrazy, ale nie wszystkie, najbardziej prawdopodobnym wyjaśnieniem jest to, że dane w jakiś sposób nie przechodzą w obie strony do bazy danych iz powrotem.

Sprawdź rozmiar pola BLOB podczas wypisywania. Sprawdź, czy zgadza się z rozmiarem pliku podczas zapisywania go do pliku na dysku. Sprawdź, czy plik na dysku jest prawidłowym plikiem JPEG. Następnie potwierdź, że pole BLOB ma dokładnie taką samą długość, gdy będziesz je ponownie czytać. Być może coś jest nie tak z twoim kodem DB i strumień jest obcinany.

Tak więc pierwszym krokiem tutaj jest potwierdzenie, że możesz odzyskać dokładnie te same dane, które pierwotnie umieściłeś w DB.

Jedyną inną myślą, jaką mam, jest to, że grafika w kontrolce obrazu nie zawsze jest w formacie JPEG. Kod używany do ładowania obrazu, Image1.Picture.Graphic.LoadFromStream() zakłada, że ​​dane są w formacie JPEG. Jeśli zapisałeś coś innego niż JPEG, to LoadFromStream() nie powiedzie się.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie w Pythonie i MySQL z cudzysłowami

  2. Czy istnieje jakieś zapytanie sql, aby sprawdzić, czy wartość istnieje, czy nie w tabeli db?

  3. ScrollPane dodawanie do układu siatki

  4. Jaki jest najlepszy sposób liczenia odsłon w PHP/MySQL?

  5. Jak mogę cofnąć ostatnią komendę usuwania w MySQL?