Commandes du thème BLOB

4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant

version 2004 (Modifiée)


Définition

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

Vous pouvez définir des champs de type BLOB et des variables 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.

Note : Les tableaux ne peuvent avoir le type 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).

Les BLOBs et la mémoire

Lorsque vous travaillez avec un BLOB, il est stocké entièrement en mémoire. Si vous travaillez avec une variable de type BLOB, elle 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 et Sous-table), 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 Ancien et Modifie ne sont pas significatifs lorsque ces fonctions sont appliquées à des champs de type BLOB.

Afficher des BLOBs

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.

Champs de type BLOB

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.

Passage des paramètres, pointeurs et résultats de fonctions

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
   FIXER TAILLE BLOB (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").

Affectation

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
   FIXER TAILLE BLOB (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.

Adresser le contenu d'un 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
   FIXER TAILLE BLOB (vBlob;256)
      ` La boucle suivante initialise les 256 octets du BLOB à zéro
   Boucle (vOctet; 0;Taille BLOB (vBlob)-1)
      vBlob{vOctet}:=0
   Fin de boucle

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.

Routines 4D pour manipuler les BLOBs

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

FIXER TAILLE BLOB redimensionne la taille d'un champ ou d'une variable de type BLOB.

Taille BLOB retourne la taille d'un champ ou d'une variable de type BLOB.

DOCUMENT VERS BLOB et BLOB VERS DOCUMENT vous permettent de charger et d'écrire un document entier dans un champ ou une variable de type BLOB et inversement (en option, les data forks et les resource forks sur Macintosh).

VARIABLE VERS BLOB et BLOB VERS VARIABLE, ainsi que LISTE VERS BLOB et BLOB vers liste vous permettent de stocker et de charger des variables 4D dans des BLOBs.

COMPRESSER BLOB, DECOMPRESSER BLOB et LIRE PROPRIETES BLOB vous permettent de travailler avec des BLOBs compressés.

Les commandes BLOB vers entier, BLOB vers entier long, BLOB vers reel, BLOB vers texte, ENTIER VERS BLOB, ENTIER LONG VERS BLOB, REEL VERS BLOB et TEXTE VERS BLOB vous permettent de manipuler et de structurer les données en provenance du disque, des ressources, du système d'exploitation, etc.

 SUPPRIMER DANS BLOB, INSERER DANS BLOB et COPIER BLOB permettent de gérer les gros volumes de données à l'intérieur des BLOBs.

CRYPTER BLOB et DECRYPTER BLOB permettent de crypter et de décrypter des données dans vos bases 4D.

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

C_BLOB déclare une variable de type BLOB (reportez-vous à la section Commandes du thème Compilateur).

LIRE DONNEES CONTENEUR et AJOUTER DONNEES AU CONTENEUR vous permettent de gérer tout type de données stockées dans le presse-papiers (référez-vous à la section Gestion du conteneur de données).

LIRE RESSOURCE et ECRIRE RESSOURCE vous permettent de gérer tout type de données stockées dans une ressource qui se trouve sur disque (référez-vous à la section Ressources).

ENVOYER BLOB HTML vous permet d'envoyer tout type de données à un navigateur Web. Cette commande est incluse dans le thème Serveur Web.

IMAGE VERS BLOB, BLOB VERS IMAGE et IMAGE VERS GIF vous permettent d'ouvrir et de convertir des images via des BLOBs. Ces commandes sont incluses dans le thème Images.

GENERER CLES CRYPTAGE et GENERER DEMANDE CERTIFICAT permettent d'exploiter le protocole SSL (Secured Socket Layer) pour crypter des données ou les connexions Web. Ces commandes sont incluses dans le thème Protocole sécurisé.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant