Datenbanken

Datenbanken

Posts 1-8 of 8
  • Kai Thrun
    Kai Thrun    Group moderator
    The company name is only visible to registered members.
    MSSQL -> Access 2007 - Bild anzeigen
    Hallo in die Runde,

    ich drehe mich seit Stunden im Kreise und so langsam nervt es mich ;)

    Ich habe folgendes Problem/Szenario:
    Bildupload via Webform in eine MS-SQL Tabelle - in Datentyp IMAGE

    Aus Access 2007 heraus connecte ich via ODBC auf die Tabelle. Nun würde ich mir natürlich auch gern das Bild mit auswerfen lassen. Ausser ausgehndem Suchmaschinen-bedienen und einer Fehlermeldung habe ich noch nicht viel erreicht...

    Grüße aus der Kiste
  • Gerhard Stephan
    Gerhard Stephan    Premium Member
    The company name is only visible to registered members.
    Re: MSSQL -> Access 2007 - Bild anzeigen
    Hallo Kai,

    der Datentyp IMAGE im SQL Server steht ja auch nicht zwingend für ein Bild, sondern für einen Binärdatentyp BLOB. Von daher könnten auch Word Dokumente oder ähnliches gespeichert werden.

    In welcher Applikation ( und/oder wie?) soll denn das Bild angezeigt werden?

    Beste Grüße
    Gerhard
  • Kai Thrun
    Kai Thrun    Group moderator
    The company name is only visible to registered members.
    Re^2: MSSQL -> Access 2007 - Bild anzeigen
    Das es ein BLOB ist, ist mir schon klar :)

    Ok, also in meinem "Blob", lasse ich ein Bild legen - und auch nix anderes.
    Es soll eigentlich nur in Access dann auf einem Formular dargestellt werden - That's all ...
  • User photo
    Frank Kalis
    (not a XING member)
    Re^3: MSSQL -> Access 2007 - Bild anzeigen
    Kai Thrun schrieb:
    Das es ein BLOB ist, ist mir schon klar :)
     
    Ok, also in meinem "Blob", lasse ich ein Bild legen - und auch nix anderes.
    Es soll eigentlich nur in Access dann auf einem Formular dargestellt werden - That's all ...

    SQL Server interpretiert nicht die Daten in so einer Spalte. Dies ist Sache des Clients. Da ich Access nicht so gut kenne, würde ich mal vermuten, Du mußt die Daten aus SQL Server per ADO.Stream in eine Datei schreiben und diese Datei dann an das Access Control binden. So wie hier beschrieben:
    http://www.microsoft.com/technet/prodtechnol/sql/2000/reskit... im Teil "ADO: Storing and Retrieving Files Using the Stream Object".

    Übrigens falls Du mit Deiner Anwendung nicht mehr SQL Server 2000 unterstützen mußt, solltest Du Datentypen wie IMAGE vermeiden. Sie sind als "deprecated" gekennzeichnet und werden in einer zukünftigen Version von SQL Server nicht mehr vorhanden sein. Als Ersatz solltest Du VARBINARY(MAX) verwenden.
    --
    Frank Kalis
    Microsoft SQL Server MVP
    Webmaster: http://www.insidesql.de
  • Kai Thrun
    Kai Thrun    Group moderator
    The company name is only visible to registered members.
    Re^4: MSSQL -> Access 2007 - Bild anzeigen
    Danke Frank für den Link.

    Wenn's nach mir gehen würde, würde ich erst gar nicht auf die Idee kommen, den Krempel in der Datenbank abzulegen ;))
  • User photo
    Frank Kalis
    (not a XING member)
    Re^5: MSSQL -> Access 2007 - Bild anzeigen
    Kai Thrun schrieb:

    Wenn's nach mir gehen würde, würde ich erst gar nicht auf die Idee kommen, den Krempel in der Datenbank abzulegen ;))
    Naja, das läuft auf eine mit nahezu religiösem Eifer geführte Diskussion hinaus, die schon zig tausend Male für wahrscheinlich jedes RDBMS geführt wurde. :-)

    Es gibt für beide Seiten gute (und nicht so gute ) Argumente. Im Endeffekt läuft es auf ein klares "It depends" hinaus.

    Hier ist noch was zum Lesen: http://research.microsoft.com/research/pubs/view.aspx?type=t...
    --
    Frank Kalis
    Microsoft SQL Server MVP
    Webmaster: http://www.insidesql.de
  • Gerhard Stephan
    Gerhard Stephan    Premium Member
    The company name is only visible to registered members.
    Re^5: MSSQL -> Access 2007 - Bild anzeigen
    Hallo Kai,

    ich hab das ganze eben mal schnell versucht nachzubauen.

    1.) Wie Frank Kalis bereits schreibt, musst Du den Blob erstmal auf die Festplatte schreiben (das geht leider nicht anders). Hier noch ein Link von Microsoft zum Umgang mit Blobs in VB (http://support.microsoft.com/kb/103257). Bei meinem Test hat die Methode jedoch nicht funktioniert. Du musst auf jeden Fall noch die Property FileData vom Datentyp String auf den Datentyp Variant umsetzen.

    2.) Dann ein Image auf dein Form ziehen und per VB die Property "Picture" mit dem Pfad des zuvor gespeicherten Bilds füllen.

    Dann sollte es funktionieren.

    Beste Grüße
    Gerhard
  • Kai Thrun
    Kai Thrun    Group moderator
    The company name is only visible to registered members.
    Re^6: MSSQL -> Access 2007 - Bild anzeigen
    Frank Kalis schrieb:

    Naja, das läuft auf eine mit nahezu religiösem Eifer geführte Diskussion hinaus, die schon zig tausend Male für wahrscheinlich jedes RDBMS geführt wurde. :-)
    Ja da gebe ich dir recht, ich denke meine Position ist klar.
    Naja ich werde mir mal den Text in Ruhe zu Gemüte führen und schauen, was ich drauß basteln kann.

    (Mir reicht die tägliche Linux, Apple, Microsoft Diskussion :D )