Mit der Einführung von Klassen in der 4D Umgebung ist die Notwendigkeit, Daten in Objekten und insbesondere in Blobs zu speichern, gestiegen. Deshalb können Sie mit 4D v19 R2 Blobs in Objekten kapseln.
Da das Blob-Objekt ein Referenztyp ist, verbessert sich neben dem Speicheraspekt auch die Leistung in Bezug auf die Speicherbelegung und Geschwindigkeit erheblich.
Sie können jetzt einen Blob als Attribut eines Objekts zuweisen, wie Sie es bei Zahlen, Text oder anderen Typen tun:
$o:=New object("blob"; $blob)
oder durch implizite Konvertierung:
$o:=New object
$o .blob:=$blob
oder mit einem gemeinsamen Objekt:
$sObj:=New shared object("blob"; $blob)
In vielen Fällen ist es besser, ein Blob-Objekt (Typ 4D.Blob) anstelle eines Blob-Typs zu verwenden. Wenn Sie z. B. ein Blob-Objekt in einer Methode oder einem Befehlsparameter übergeben, wird es nicht wie ein Blob-Typ dupliziert, sondern wie jedes andere 4D Objekt per Referenz übergeben. Das ist schneller und verbraucht weniger Speicherplatz:
var $blobObj : Object
// Download your MIME in a blob object
$blobObj :=IMAP_transporter.getMIMEAsBlob ( $msgID )
// The BLOB object is then passed to the AddToArchives method by reference.
AddToArchives (
$blobObj)
// Unlike when you pass a Blob type, the blob is not duplicated when handled using a blob object.
Der Standard-Blob-Typ ist jedoch nicht veraltet. Jeder Blob-Typ hat seine Vorteile. Verwenden Sie die folgende Tabelle, um festzustellen, welcher Typ Ihren Anforderungen entspricht:
Blob | 4D.Blob | |
---|---|---|
Veränderbar | Ja | Nein |
In Objekten und Sammlungen gemeinsam nutzbar | Nein | Ja |
Übergabe durch Referenz* | Nein | Ja |
Leistung beim Zugriff auf Bytes | + | – |
Maximale Größe | 2GB* | Speicher |
*Diese Größenbeschränkung kann je nach Betriebssystem und verfügbarem Speicherplatz niedriger sein.
Schauen Sie sich die Dokumentation an, um mehr über diesen neuen Attributtyp zu erfahren!
Nun, da Blobs in Objekten verwaltet werden, gibt es nur noch einen weiteren Schritt, um sie in ORDA zu verwalten. Bleiben Sie dran!