Con l’introduzione delle classi nell’ambiente 4D, è aumentata la necessità di memorizzare i dati in oggetti e soprattutto in blob. Ecco perché 4D v19 R2 consente di incapsulare i blob negli oggetti.
Oltre all’aspetto della memorizzazione, poiché l’oggetto blob è un tipo di riferimento, le prestazioni in termini di occupazione di memoria e di velocità saranno notevolmente migliorate.
È ora possibile assegnare un blob come attributo di un oggetto, come si fa per i numeri, il testo o altri tipi:
$o:=New object("blob"; $blob)
o tramite conversione implicita:
$o:=New object
$o .blob:=$blob
o con un oggetto condiviso:
$sObj:=New shared object("blob"; $blob)
In molti casi, è meglio usare un oggetto blob (tipo 4D.Blob) invece di un tipo Blob. Ad esempio, quando si passa un oggetto blob in un metodo o in un parametro di comando, non viene duplicato come un tipo Blob, ma viene passato per riferimento, proprio come qualsiasi altro oggetto 4D. Questo è più veloce e richiede meno memoria:
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.
Ma il tipo Blob standard non è deprecato. Ogni tipo di blob ha i suoi vantaggi. Usare la seguente tabella per determinare quale sia quello più adatto alle proprie esigenze:
Blob | 4D.Blob | |
---|---|---|
Alterabile | Sì | No |
Condivisibile in oggetti e collezioni | No | Sì |
Passato per riferimento* | No | Sì |
Prestazioni durante l’accesso ai byte | + | – |
Dimensione massima | 2GB* | Memoria |
*Questo limite di dimensione può essere inferiore a seconda del sistema operativo e dello spazio disponibile.
Consultate la documentazione per saperne di più su questo nuovo tipo di attributo!
Ora che i blob sono gestiti negli oggetti, manca solo un passaggio per la loro gestione in ORDA. Restate sintonizzati!