"Dateianhänge" und BLOB-Queries

Hoch  Zurück  Vor

Über so genannte BLOB-Felder können Sie beliebig große Binärdaten in einer Tabelle speichern. Bei diesen Binary Large Objects (BLOBs) kann es sich um die verschiedensten Daten handeln, von Bildern, über Audio-Daten bis hin zu Word-Dokumenten. Über BLOB-Queries können Sie mit DataNAUT CS auf diese Daten zugreifen und so eine Datei an jeden Datensatz einer Datenansicht "anhängen". Von simplen Fotos zu einzelnen Kontakt-Daten bis hin zum ausgewachsenen Dokument-Management-System ist fast alles möglich.

 

Wenn ein BLOB-Query verwendet wird, dann steht in der Datenansicht des Templates die Funktion Anhang zur Verfügung, welche Zugriff auf die vom BLOB-Query zurückgelieferte Datei bietet: Die Datei kann angezeigt, gedruckt, gespeichert oder verschickt werden. Für jeden Datensatz der Datenansicht kann genau ein Anhang definiert werden, weshalb auch nur maximal ein BLOB-Query pro Template erlaubt ist. Enthält die Ergebnismenge einer BLOB-Query mehr als einen Datensatz, dann wird nur der erste davon verwendet.

 

Die Zuordnung von Datensatz zu Anhang erfolgt über eine spezielle Master-Detail-Beziehung zwischen BLOB-Query und Hauptabfrage. Diese Beziehung ist automatisch vorhanden und kann nicht geändert werden. Es handelt sich dabei um den Steuerungstyp mdtSmartConnect, welcher festlegt, dass im BLOB-Query ein Parameter verwendet werden kann, zu dem es ein gleichnamiges Feld in der Ergebnismenge der Hauptabfrage geben muss.

 

Eine weitere Besonderheit muss bei Verwendung von BLOB-Query beachtet werden: Die Ergebnismenge der Query muss die Felder FILENAME und DATA enthalten. Das Feld DATA muss dabei ein BLOB-Feld sein, welches die Datei enthält und im Feld FILENAME muss ein Dateiname angegeben sein, der für die Datei verwendet werden soll. Ohne einen Dateinamen ließe sich nicht feststellen, um was für eine Datei es sich bei den im BLOB-Feld hinterlegten Daten handelt. Über den Dateinamen kann DataNAUT CS einen Anhang mit der entsprechenden, unter Windows definierten Standardanwendung öffnen. Auch zum Speichern, Versenden und Drucken wird der Name des Anhangs verwendet.

 

Das folgende Beispiel demonstriert die Verwendung einer BLOB-Query zum Verknüpfen eines Bildes mit einem Datensatz aus der Adressdatenbank. Das Template setzt voraus, dass in der Datenbank eine Tabelle pictures mit den Feldern ID, filename und picture existiert, welche im Feld pictures jeweils eine Bild-Datei enthält.

 

1 Starten Sie DataNAUT CS und legen Sie ein neues Template mit dem Namen BLOB an.

Blob_001

2 Geben Sie als Hauptabfrage für das Template folgenden SQL-Code ein:
 
SELECT
 *
FROM
 adr

 

3 Legen Sie über SQL-Abfragen und Scripte / Neu eine neue BLOB-Query an.

Blob_002

4 Geben Sie folgenden SQL-Code für die Abfrage der BLOB-Query an:

SELECT

  filename "FILENAME",

  picture  "DATA"

FROM

  pictures

WHERE

  ID=:ID
 

Wie Sie sehen, muss nicht die Tabelle, die im BLOB-Query abgefragt wird die Felder FILENAME und DATA enthalten, sondern lediglich die Ergebnistabelle der Query, was in diesem Fall über die explizite Zuweisung der entsprechenden Feldnamen in der SELECT-Anweisung geschieht.

5 Geben Sie nun im Kasten Script-Einstellungen unter Detail-Parametername den Wert ID an. Hierdurch legen Sie fest, dass der im Query verwendete Parameter ID über die Master-Detail-Beziehung mit dem Feld ID der Ergebnismenge der Hauptabfrage verknüpft wird. Da jeder Datensatz in der Adressdatenbank eine eindeutige ID enthält, kann so jedem Datensatz ein eindeutiges Bild zugeordnet werden.

Blob_003

6 Speichern Sie die gemachten Änderungen über Speichern und klicken Sie dann auf Testen.

7 Da ein BLOB-Query verwendet wurde, ist in der Datenansicht nun die Funktion Anhang zu sehen. Markieren Sie einen Datensatz in der Datenansicht und wählen Sie dann die Funktion Anhang / Anzeigen aus.

Blob_004

Ist ein Bild zum gewählten Datensatz vorhanden, dann wird dieses nun mit dem Windows-Bildbetrachter geöffnet, beziehungsweise mit dem Programm, das als Standard für den jeweiligen Bild-Typ definiert ist.

Blob_005

Über BLOB-Scripte angehängte Dateien werden mit dem jeweiligen Standard-Programm geöffnet.