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

एमएस एक्सेस रिपोर्ट में ब्लॉब छवि आयात करने पर अपवाद

त्रुटि कुछ हद तक आत्म-व्याख्यात्मक है:माइक्रोसॉफ्ट एक्सेस में एक छवि नियंत्रण या तो फ़ाइल स्थान से जुड़ा हो सकता है, या .dib पर सेट किया जा सकता है छवि (डिवाइस स्वतंत्र बिटमैप प्रारूप , अधिक अस्पष्ट छवि प्रारूपों में से एक)।

हालांकि, इसके आसपास काम करना इतना आसान नहीं है।

आप उस सीमा के आसपास कई तरह से काम कर सकते हैं:

  1. ऐसे ActiveX नियंत्रण का उपयोग करें जो एकाधिक छवि प्रारूपों का समर्थन करता है (इसमें अनेक पाए जा सकते हैं)
  2. छवि को एक अस्थायी फ़ोल्डर में डिस्क पर सहेजें, और छवियों के नियंत्रण स्रोत को उसके स्थान पर सेट करें
  3. वेब ब्राउज़र नियंत्रण का उपयोग करें, और HTML <img /> . का उपयोग करें एम्बेडेड BASE64 इमेज का उपयोग करके अपनी छवि प्रदर्शित करने के लिए टैग करें

दृष्टिकोण 3 के लिए उदाहरण कोड यहां दिया गया है:

सबसे पहले, हमें OLE ऑब्जेक्ट में निहित बाइनरी कोड को BASE64 में बदलने में सक्षम होना चाहिए:

Public Function ToBase64(Bytes As Variant) As String
    Dim XMLElement As Object
    Set XMLElement = CreateObject("Msxml2.DOMDocument.6.0").createElement("tmp")
    XMLElement.DataType = "bin.base64"
    XMLElement.nodeTypedValue = Bytes
    ToBase64 = Replace(XMLElement.Text, vbLf, "")
End Function

फिर, हम एक वेब ब्राउज़र नियंत्रण का उपयोग कर सकते हैं, और इसमें BASE64-एन्कोडेड छवि के साथ एक वेब पेज सम्मिलित कर सकते हैं:

Public Sub InsertImageInControl()
    Dim wb As Object
    Set wb = MyWebbrowserControl.Object
    With wb
        .Navigate2 "about:blank"
        Do Until .ReadyState = 4 '=READYSTATE_COMPLETE
            'This is a somewhat inefficient way to wait, but loading a blank page should only take a couple of milliseconds
            DoEvents
        Loop
        .Document.Open
        .Document.Write "<!DOCTYPE html><HTML><HEAD><TITLE>A</TITLE></HEAD><BODY scroll=""no"" style=""margin: 0px; padding: 0px;"">"
        .Document.Write "<img alt="""" style=""width:100%; margin: 0px; padding: 0px;"" src=""data:image/jpg;base64,"
        .Document.Write ToBase64(MyOLEObject.Value)
        .Document.Write """ />"
        .Document.Write "</BODY></HTML>"
        .Document.Close
    End With
End Sub

जहां MyWebbrowserControl आपके वेबब्राउज़र नियंत्रण का नाम है, image/jpg आपकी छवि का प्रकार है, और MyOLEObject आपका OLE ऑब्जेक्ट है।

टिप्स:

  • WebBrowser ActiveX नियंत्रण का उपयोग न करें, लेकिन एक्सेस के साथ आने वाले नियंत्रण का उपयोग करें। अन्यथा, आपको इंटरनेट एक्सप्लोरर का एक पुराना संस्करण मिलेगा जिसकी 3डी सीमा होगी जिसे हटाया नहीं जा सकता।
  • वेब ब्राउज़र नियंत्रण के लिए नियंत्रण स्रोत को ="about:blank" . पर सेट करें इसे एक रिक्त पृष्ठ के रूप में प्रारंभ करने के लिए



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में पूर्ण बाहरी जुड़ाव का अजीब व्यवहार - इसे कैसे समझाया जा सकता है?

  2. REFs की तालिका के लिए SCOPE

  3. ओरेकल नंबर के अंकों की संख्या कैसे पता करें

  4. पीएचपी, आईआईएस, ओरेकल (ओसीआई) काम नहीं कर रहा

  5. ORA-01036:C# के माध्यम से क्वेरी चलाते समय अवैध चर नाम/संख्या