Binäre Objekte
Binäre Objekte Große binäre Objekte (BLObs - Binary Large Objects)
- Siehe: Liste , Eigenschaften , Befehle für binäre Objekte , Blog
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 VerzeichnissesName- Name des VerzeichnissesFullName- Name und Pfad des VerzeichnissesCustom- 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 ObjektesName- Name des ObjektesFullName- Name und Pfad des ObjektesCustom- Benutzerdefinierte EigenschaftCreated- Erstellungszeitpunkt des ObjektesCreatedUser- Benutzer, der das Objekt erzeugt hatModified- Zeitpunkt der letzten ÄnderungModifiedUser- Benutzer, der das Objekt zuletzt geändert hatTypeUser- Benutzerdefinierte TypinformationTypeMime- MIME-Typ des ObjektesSizeDba- Speicherverbrauch des Objektes in der DatenbankSizeDba64- Speicherverbrauch des Objektes in der Datenbank (als 64-Bit-Wert)SizeOrg- Originalgröße des ObjektesSizeOrg64- Originalgröße des Objektes (als 64-Bit-Wert)TimeExternal- Datum und Uhrzeit der letzten Änderung der externen Datei vor ImportCompression- 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:
- Oberflächen-Objekte: Eigenschaft / Funktion
- DocView:
FileName - Picture:
Caption - MetaPicture:
Caption - RtfEdit:
StreamSource=_WinStreamNameBinundFileName - RtfEdit:
WinRtfPicInsertName () - PrtJobPreview:
Caption - Druck-Objekte: Eigenschaft
- PrtPicture:
Caption - PrtMetaPicture:
Caption - PrtPdf:
FileName - PrtRtf:
StreamSource=_WinStreamNameBinundFileName - System-Objekte: Funktion
- Memory:
BinReadMem ()