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

Proč se mi zobrazuje chyba JPEG 42, když je uložen v databázi?

Při zkrácení datového proudu je hlášena chyba JPEG 42. Pokud se například pokusíte načíst soubor s nulovou délkou do TJPEGImage pak je konečným výsledkem chyba 42.

Pokud se zobrazují některé obrázky, ale ne všechny, pak nejpravděpodobnějším vysvětlením je, že data nějak neprovádějí zpáteční cestu do DB a zpět.

Při vypisování zkontrolujte velikost pole BLOB. Zkontrolujte, zda odpovídá velikosti souboru, když jej zapisujete na diskový soubor. Zkontrolujte, zda je soubor na disku platný JPEG. Poté při opětovném čtení potvrďte, že pole BLOB má přesně stejnou délku. Možná je něco v nepořádku s vaším kódem DB a stream se ořezává.

Takže úplně prvním krokem je potvrdit, že můžete obnovit přesně stejná data, která jste původně vložili do DB.

Jedinou další myšlenkou je, že grafika v ovládacím prvku obrazu není vždy JPEG. Kód, který používáte k načtení obrázku, Image1.Picture.Graphic.LoadFromStream() předpokládá, že data jsou ve formátu JPEG. Pokud jste uložili něco jiného než JPEG, pak LoadFromStream() selže.




  1. Many to Many uvnitř Many to Many Table

  2. Časové razítko Postgres now() se nemění, když skript funguje

  3. Jak synchronizovat Mysql do Bigquery v reálném čase?

  4. Django:Používání vlastních nezpracovaných vložek SQL s exekutory a MySQL