Zum Hauptinhalt springen

Binäre Objekte

Binäre Objekte Große binäre Objekte (BLObs - Binary Large Objects)

In binären Objekten können größere Datenmengen gespeichert werden, die nicht in einzelnen Datensätzen gespeichert werden können. Dies umfasst zum Beispiel Word-Dokumente, MPeg-Dateien oder Bilder.

Diese binären Objekte werden in einer Verzeichnisstruktur in der Datenbank gespeichert. Das Root-Verzeichnis kann nicht verändert oder gelöscht werden. Hier können neue Verzeichnisse mit dem Befehl BinDirOpen ( 0 , <Name>, _BinCreate ) angelegt werden. Dateien können nur in angelegten Verzeichnissen und nicht im Root-Verzeichnis gespeichert werden.

Der Befehl BinDirOpen () liefert einen Deskriptor eines Verzeichnisses zurück. Dieser Deskriptor muss angegeben werden, wenn ein neues binäres Objekt (Verzeichnis oder Datenobjekt) in diesem Verzeichnis angelegt werden soll.

Beispiel:

tHdlDir    # BinDirOpen(0, 'Documents', _BinCreate);
tHdlSubDir # tHdlDir->BinDirOpen('Excel', _BinCreate);

In diesem Beispiel wird ein neues Verzeichnis "Documents" in dem Root-Verzeichnis angelegt. In dem Verzeichnis "Documents" wird anschließend ein weiteres Verzeichnis mit dem Namen "Excel" erzeugt. Das zweite Verzeichnis könnte ebenfalls mit dem Befehl tHdlSubDir # BinDirOpen ( 0 , 'Documents\Excel' , _BinCreate ); erzeugt werden.

Nicht mehr benötigte Deskriptoren können mit dem Befehl BinClose () entfernt werden. Sollten nur die oben angegebenen Verzeichnisse erzeugt werden, können jetzt die Deskriptoren freigegeben werden:

tHdlDir   ->BinClose(); 
tHdlSubDir->BinClose();

Über den Deskriptor können verschiedene Eigenschaften eines Verzeichnisses abgefragt oder gesetzt werden:

  • ID - Identität des Verzeichnisses
  • Name - Name des Verzeichnisses
  • FullName - Name und Pfad des Verzeichnisses
  • Custom - Benutzerdefinierte Eigenschaft

Die Verzeichnisstruktur dient zur Ordnung der eigentlichen Datenobjekte. Ein neues Datenobjekt wird mit dem Befehl BinOpen (<Directory>, <Name>, _BinCreate ) angelegt. Dieses Objekt ist zunächst leer. Mit dem zurückgegebenen Objektdeskriptor kann über den Befehl BinImport () eine externe Datei eingelesen und in der Datenbank gespeichert werden.

Beispiel:

tHdlBin # BinOpen(0, 'Documents\Excel\Tab1', _BinCreate);
tHdlBin->BinImport('C:\Table\Table1.xls');
tHdlBin->BinClose();

Bestehende Objekte können ebenfalls wieder exportiert werden.

Beispiel:

tHdlBin # BinOpen(0, 'Documents\Excel\Tab1', _BinSingleLock);
tHdlBin->BinExport('C:\doc\Table1.xls');
tHdlBin->BinClose();

In beiden Fällen bleibt das Original erhalten. Über den Deskriptor können verschiedene Eigenschaften eines binären Objektes abgefragt oder gesetzt werden:

  • ID - Identität des Objektes
  • Name - Name des Objektes
  • FullName - Name und Pfad des Objektes
  • Custom - Benutzerdefinierte Eigenschaft
  • Created - Erstellungszeitpunkt des Objektes
  • CreatedUser - Benutzer, der das Objekt erzeugt hat
  • Modified - Zeitpunkt der letzten Änderung
  • ModifiedUser - Benutzer, der das Objekt zuletzt geändert hat
  • TypeUser - Benutzerdefinierte Typinformation
  • TypeMime - MIME-Typ des Objektes
  • SizeDba - Speicherverbrauch des Objektes in der Datenbank
  • SizeDba64 - Speicherverbrauch des Objektes in der Datenbank (als 64-Bit-Wert)
  • SizeOrg - Originalgröße des Objektes
  • SizeOrg64 - Originalgröße des Objektes (als 64-Bit-Wert)
  • TimeExternal - Datum und Uhrzeit der letzten Änderung der externen Datei vor Import
  • Compression - Kompressionsstufe

Neben den hier gezeigten Funktionen stehen weitere Befehle zum Bearbeiten von binären Objekten zur Verfügung. Eine Liste der Befehle befindet sich im Abschnitt Befehle für binäre Objekte .

Binäre Objekte der Formate BMP, JPG und TIFF können in dem Objekt Picture dargestellt werden. In der Eigenschaft Caption wird '>0' gefolgt von dem Pfad und dem Name des binären Objektes angegeben. Entsprechendes gilt für binäre Objekte, in den Formaten, die von den Objekten MetaPicture , PrtPicture und PrtMetaPicture dargestellt werden können.

Befindet sich das binäre Objekt in einer mit DbaConnect () verbundenen CONZEPT 16-Datenbank, wird hinter dem > die Nummer des dort übergebenen Dateinummernkreises ('>2', '>3' oder '>4') angegeben.

Ist das binäre Objekt verschlüsselt in der Datenbank gespeichert, muss der Schlüssel in der Eigenschaft CryptKey angegeben werden.

Beispiele:

'>0\Pictures\Photo'
'>2\Pictures\Archive'

Binäre Objekte können direkt in die folgenden Objekte geladen werden: