Créer un attribut BLOB dans un objet

Traduit automatiquement de Deepl

Avec l’introduction des classes dans l’environnement 4D, la nécessité de stocker vos données dans des objets, et notamment des blobs, a augmenté. C’est pourquoi 4D v19 R2 vous permet d’encapsuler des blobs dans des objets.

Au-delà de l’aspect stockage, l’objet blob étant un type de référence, vos performances en termes d’occupation mémoire et de rapidité seront grandement améliorées.

Vous pouvez maintenant assigner un blob comme attribut d’un objet comme vous le faites pour des nombres, du texte ou d’autres types :

$o:=New object("blob" ; $blob)

ou par conversion implicite :

$o:=New object
$o .blob:=$blob

ou avec un objet partagé :

$sObj:=New shared object("blob" ; $blob)

Dans de nombreux cas, il est préférable d’utiliser un objet blob (type 4D.Blob) plutôt qu’un type Blob. Par exemple, lorsque vous passez un objet blob dans une méthode ou un paramètre de commande, il n’est pas dupliqué comme un type Blob mais passé par référence, comme tout autre objet 4D. C’est plus rapide et moins consommateur de mémoire :

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.

Mais le type Blob standard n’est pas déprécié. Chaque type de blob a ses avantages. Utilisez le tableau suivant pour déterminer celui qui convient à vos besoins :

Blob Blob 4D
Modifiable Oui Non
Partageable en objets et collections Non Oui
Passé par référence*. Non Oui
Performances lors de l’accès aux octets +
Taille maximale 2 GO* – TAILLE MAXIMALE Mémoire

*Cette taille limite peut être inférieure en fonction de votre système d’exploitation et de l’espace disponible.

Consultez la documentation pour en savoir plus sur ce nouveau type d’attribut !

Maintenant que les blobs sont gérés dans les objets, il ne reste plus qu’une étape pour qu’ils soient gérés dans ORDA. Restez à l’écoute !

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.