Se zavedením tříd v prostředí 4D se zvýšila potřeba ukládat data do objektů, a zejména do blobů. Proto 4D v19 R2 umožňuje zapouzdřit bloby do objektů.
Kromě aspektu ukládání se díky tomu, že objekt blob je referenčním typem, výrazně zlepší váš výkon z hlediska obsazení paměti a rychlosti.
Nyní můžete blob přiřadit jako atribut objektu, stejně jako to děláte u čísel, textu nebo jiných typů:
$o:=New object("blob"; $blob)
nebo implicitní konverzí:
$o:=New object
$o .blob:=$blob
nebo pomocí sdíleného objektu:
$sObj:=New shared object("blob"; $blob).
V mnoha případech je lepší použít objekt blob (typ 4D.Blob) místo typu Blob. Když například předáváte objekt blob v metodě nebo parametru příkazu, není duplikován jako typ Blob, ale předává se odkazem, stejně jako jakýkoli jiný objekt 4D. To je rychlejší a méně náročné na paměť:
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.
Standardní typ Blob však není zastaralý. Každý typ blobu má své výhody. Pomocí následující tabulky určete, který z nich vyhovuje vašim potřebám:
Blob | 4D.Blob | |
---|---|---|
Měnitelný | Ano | Ne |
Sdílení v objektech a kolekcích | Ne | Ano |
Předává se odkazem* | Ne | Ano |
Výkon při přístupu k bajtům | + | – |
Maximální velikost | 2GB* | Paměť |
*Tento limit velikosti může být nižší v závislosti na operačním systému a na tom, kolik místa je k dispozici.
Více informací o tomto novém typu atributu najdete v dokumentaci!
Nyní, když jsou bloby spravovány v objektech, zbývá už jen jeden krok k tomu, aby byly spravovány v ORDA. Zůstaňte naladěni!