Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

डेटाबेस में संग्रहीत होने पर मुझे JPEG त्रुटि 42 क्यों मिलती है?

JPEG त्रुटि 42 की सूचना तब दी जाती है जब स्ट्रीम को छोटा कर दिया जाता है। उदाहरण के लिए, यदि आप एक शून्य लंबाई वाली फ़ाइल को TJPEGImage . में लोड करने का प्रयास करते हैं तो त्रुटि 42 अंतिम परिणाम है।

यदि कुछ छवियां प्रदर्शित होती हैं, लेकिन सभी नहीं, तो सबसे अधिक संभावित स्पष्टीकरण यह है कि डेटा किसी तरह डीबी और पीछे की ओर चक्कर नहीं लगा रहा है।

जब आप इसे लिखते हैं तो BLOB फ़ील्ड के आकार की जाँच करें। जब आप इसे डिस्क फ़ाइल में लिखते हैं, तो जांचें कि यह फ़ाइल के आकार से मेल खाता है। जांचें कि डिस्क फ़ाइल एक मान्य JPEG है। फिर पुष्टि करें कि जब आप इसे दोबारा पढ़ते हैं तो BLOB फ़ील्ड की लंबाई समान होती है। शायद आपके DB कोड में कुछ गड़बड़ है और स्ट्रीम को छोटा किया जा रहा है।

तो, यहां पहला कदम यह पुष्टि करना है कि आप ठीक उसी डेटा को पुनर्प्राप्त कर सकते हैं जिसे आपने मूल रूप से डीबी में डाला था।

मेरे पास एकमात्र अन्य विचार यह है कि छवि नियंत्रण में ग्राफिक हमेशा जेपीईजी नहीं होता है। छवि लोड करने के लिए आप जिस कोड का उपयोग करते हैं, Image1.Picture.Graphic.LoadFromStream() मानता है कि डेटा एक जेपीईजी है। अगर आपने JPEG के अलावा कुछ और सेव किया था तो LoadFromStream() विफल हो जाएगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.sql.SQLException:अमान्य तर्क मान:java.io.NotSerializableException

  2. पहचान (डेटाबेस निर्माण पर) त्रुटि निर्दिष्ट कुंजी बहुत लंबी थी

  3. Laravel 5 वाक्पटु:कैसे निष्पादित किया जा रहा है कि कच्चे sql प्राप्त करने के लिए? (बाध्य डेटा के साथ)

  4. MySQL क्वेरी प्रदर्शन बढ़ाना - गणित भारी क्वेरी

  5. मुझे अपने विंडोज़ कंप्यूटर पर my.cnf नहीं मिल रहा है