4D v16.3

Commandes du thème BLOB

Accueil

 
4D v16.3
Commandes du thème BLOB

Commandes du thème BLOB  


 

4D prend en charge les données de type BLOB (Binary Large OBjects).

Vous pouvez définir des champs de type BLOB, des variables de type BLOB et des tableaux de type BLOB :

  • Pour créer un champ de type BLOB, sélectionnez BLOB dans la liste déroulante Type de champ dans la fenêtre des Propriétés de champ.
  • Pour créer une variable de type BLOB, utilisez la directive de compilation C_BLOB. Vous pouvez créer des variables BLOB locales, process et interprocess.
  • Pour créer un tableau de type BLOB, utilisez la commande ARRAY BLOB.

Dans 4D, un BLOB est une série contiguë d'octets de longueur variable qui peut être traitée comme un seul objet ou dont les octets peuvent être adressés individuellement. Un BLOB peut être vide (longueur nulle) ou contenir jusqu'à 2147483647 octets (2 Go).

Lorsque vous travaillez avec un BLOB, il est stocké entièrement en mémoire. Si vous travaillez avec une variable ou un tableau, le BLOB n'existe qu'en mémoire. Si vous travaillez avec un champ de type BLOB, il est chargé en mémoire à partir du disque, comme le reste de l'enregistrement auquel il appartient.

A l'instar des autres types de champs pouvant contenir une grande quantité de données (comme les champs de type Image), les champs de type BLOB ne sont pas dupliqués en mémoire lorsque vous modifiez un enregistrement. Par conséquent, les résultats renvoyés par Old et Modified ne sont pas significatifs lorsque ces fonctions sont appliquées à des champs de type BLOB.

Comme un BLOB peut contenir n'importe quel type de données, il n'existe pas de mode de représentation à l'écran par défaut des BLOBs. Si vous affichez un champ ou une variable de type BLOB dans un formulaire, l'objet sera toujours vide, quel que soit son contenu.

Vous pouvez utiliser des champs de type BLOB pour stocker tout type de données dont la taille est inférieure ou égale à 2 Giga-octets. Vous ne pouvez pas indexer un champ de type BLOB. Si vous voulez rechercher des enregistrements à partir d'une valeur contenue dans un champ BLOB, il sera nécessaire d'écrire une formule.

Les BLOBs dans 4D peuvent être passés comme paramètres aux commandes 4D ou aux routines des plug-ins qui attendent un paramètre de type BLOB. Les BLOBs peuvent également être passés aux méthodes que vous créez ou être retournés comme un résultats de fonctions. Pour passer un BLOB à une de vos méthodes, vous pouvez aussi définir un pointeur vers le BLOB et passer le pointeur comme paramètre. Voici quelques exemples :

  ` Déclarer une variable de type BLOB
 C_BLOB(touteVarBLOB)
  ` Le BLOB est passé comme paramètre à une commande 4D
 SET BLOB SIZE(touteVarBLOB;1024*1024)
  ` Le BLOB est passé comme paramètre à une routine externe
 $CodeErr:=Faites_Quelque_chose_avec_ce_BLOB(touteVarBLOB)
  ` Le BLOB est passé comme paramètre à une méthode qui retourne un BLOB
 C_BLOB(recupBlob)
 recupBlob:=Remplir_Blob(touteVarBLOB)
  ` Un pointeur vers le BLOB est passé comme paramètre à une de vos méthodes
 REMPLIR BLOB AVEC DES ZEROS(->touteVarBLOB)

Note pour les développeurs de plug ins 4D : Un paramètre de type BLOB se déclare “&O” (la lettre “O” et non le chiffre “0”).

Vous pouvez affecter la valeur d'un BLOB à d'autres BLOBs, comme dans l'exemple suivant :

  ` Déclarer deux variables de type BLOB
 C_BLOB(vBlobA;vBlobB)
  ` Fixer la taille du premier BLOB à 10Ko
 SET BLOB SIZE(vBlobA;10*1024)
  ` Affectez le premier BLOB au second
 vBlobB:=vBlobA

En revanche, il n'existe pas d'opérateur pouvant être utilisé avec des BLOBs ; il n'existe pas d'expression de type BLOB.

Chaque octet d'un BLOB peut être adressé individuellement, à l'aide des accolades {...}. Dans un BLOB, les octets sont numérotés de 0 à N-1, N étant la taille du BLOB. Voici un exemple :

  ` Déclarer une variable de type BLOB
 C_BLOB(vBlob)
  ` Fixer la taille du BLOB à 256 octets
 SET BLOB SIZE(vBlob;256)
  ` La boucle suivante initialise les 256 octets du BLOB à zéro
 For(vOctet;0;BLOB size(vBlob)-1)
    vBlob{vOctet}:=0
 End for

Comme vous pouvez adresser individuellement tous les octets d'un BLOB, vous pouvez littéralement stocker tout ce que vous voulez dans une variable ou un champ de type BLOB.

4D fournit les routines suivantes pour travailler avec les BLOBs :

Ces commandes sont décrites dans ce chapitre. De plus, vous disposez des routines suivantes :



Voir aussi  

APPEND DATA TO PASTEBOARD
BLOB TO PICTURE
BLOB TO USERS
C_BLOB
GENERATE CERTIFICATE REQUEST
GENERATE ENCRYPTION KEYPAIR
GET PASTEBOARD DATA
GET RESOURCE
PICTURE TO BLOB
PICTURE TO GIF
USERS TO BLOB
WEB SEND BLOB

 
PROPRIÉTÉS 

Produit : 4D
Thème : BLOB

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)