Announcement

Collapse
No announcement yet.

Probleme bei Datenbank Pictures

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme bei Datenbank Pictures

    Hallo,

    ich arbeite mit Visual Studio 2005.
    Meine DB Anwendung ist an eine Access Datenbank angebunden.
    In dieser Access DB sind Pictures gespeichert (.gif's, .bmp's und .jpg's) , die ich auch problemlos innerhalb der Access Anwendung mit Hilfe einer Form anschauen/editieren kann.
    Mein Problem:
    die Pictures sind innerhalb meiner VB Anwendung nicht sichtbar. Weder eine PictureBox noch sonst ein Element kann die Pictures der Access DB in meiner Form darstellen. Es wird immer nur ein Error-Kreuz angezeigt. Selbst in der Datenvorschau direkt im Dataset zeigt nur anstelle der Bilder dieses error-Zeichen.

    Die Anbindung der Datenbank an meine Anwendung wird über den internen Jet-Anbieter (.NET OLEDB Provider) realisiert.

    Ich bekomme das Problem nicht gelöst und viele graue Haare..........

    Wer kann mir helfen.

    Vielen Dank schon mal.

  • #2
    Speicher mal die Daten auf Festplatte und kontrolliere mal mit einem Hex-Editor die ersten Bytes. Ich vermute mal das hier ein OLE-Header in jeder Datei vorhanden ist und deine Implementierung die Pictures in "Reinform" erwartet.

    Comment


    • #3
      Hallo Bernhard,

      vielen Dank für Deinen Input.
      Du hast mit deiner Vermutung recht. Ein Header "verunreinigt" das Byte Array so, dass meine VB Anwendung es nicht mehr als Picture interpretieren kann.

      Da ich die OLE Verbindng nicht ändern kann: gibt es hierzu in Visual Studio keine Lösung ohne Code zu generieren, sozusagen auf Maus-Ebene, in Properties...? Microsoft muss doch dieses Problem bereits identifiziert haben und Lösungen/Patches bereitstellen. Leider und seltsamer Weise habe ich dazu nichts finden können. Kennst Du Info-Quellen zu diesem Thema?

      Grüße und schöne Ostern

      Manfred

      Comment


      • #4
        MS und ihr liebes Ole-Format. Haben selbst ähnliche Problem mit diesem sch... im Bereich unserer Kundendatenbank in der E-Mails gespeichert werden. Und wenn man nicht die gleiche Outlook-Version hat gehts halt nicht mehr.

        Ich würde die Zeichnung als Stream auslesen, die Daten ohne Ole-Header in einen anderen Stream kopieren und dann anzeigen lassen. Beim Speichern den umgekehrten Weg mit Ole-Header anfügen. Oder mal probieren ob die Access-Client auch ohne Ole-Header die Zeichnung anzeigen lassen können.

        Comment


        • #5
          Hallo,

          Leider und seltsamer Weise habe ich dazu nichts finden können.
          wenn in der ACCESS-Datenbank die Grafiken als OLE-Objekte eingebunden wurden, aber das eigene Programm nicht das OLE-Objekt benötigt, sondern nur die reinen Grafikdaten, müssen die ersten 78 Bytes übersprungen werden. Diesen "Trick" verwendet Microsoft in seinen eigenen Beispielanwendungen, die auf die Northwind-Datenbank zugreifen.

          Comment


          • #6
            Hallo,

            vielen Dank für das Statement.
            Ich habe die Microsoft-Artikel zu der OLE - Headerproblematik gefunden, sowie einige Code-Templates, die das Problem lösen.

            Sonnige Ostern!

            Comment


            • #7
              Nachtrag.
              Wen es interessiert:
              unter
              http://www.access-im-unternehmen.de/183.0.html
              habe ich einen Beispielcode (Access) gefunden, der Bilddateien in einer Access DB in Long-Binary abspeichert, ohne den üblichen Header-Offset.
              Funktioniert einwandfrei. So kann ich die Datenbank-Bilder ohne zusätzlichen Code in meiner VB.NET Anwendung betrachten/bearbeiten.

              Nochmals Danke an Euch.

              Comment

              Working...
              X