Ein BLOB-Attribut in einem Objekt erstellen

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!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené gehört seit November 2016 zum 4D Program Team. Als Product Owner ist er verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Seine Aufgabe ist es auch, sicherzustellen, dass die gelieferte Funktionsimplementierung den Kundenanforderungen entspricht.Nach seinem Bachelor-Abschluss in Informatik am CNAM arbeitete Fabrice als Windev-Entwickler bei einem kleinen Software-Verlag. Danach arbeitete er für verschiedene Unternehmen in Industrie und Handel als Windev- und Webentwickler sowie als technischer Berater für neue Funktionen.