TEXTE VERS 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 11 (Modifiée)


TEXTE VERS BLOB (texte; blob; formatTexte{; offset | *})

ParamètreTypeDescription
texteChaîneTexte à écrire dans blob
blobBLOBBLOB devant recevoir le texte
formatTexteNumériqueFormat et jeu de caractères du texte
offset | *Variable | *Offset (en octets) dans le BLOB ou
* pour ajouter la valeur à la fin du BLOB
Nouvel offset après l'écriture si * omis

Description

La commande TEXTE VERS BLOB écrit la valeur de type Texte texte dans le BLOB blob.

Le paramètre formatTexte définit le format interne et le jeu de caractères de la valeur de type Texte à écrire. Dans les bases de données créées à compter de la version 11, 4D utilise par défaut le jeu de caractères Unicode (UTF8) pour la gestion des textes. Par compatibilité, cette commande permet de "forcer" la conversion en utilisant le jeu de caractères Mac Roman (jeu de caractères utilisé dans les versions précédentes de 4D). Le choix du jeu de caractères s'effectue via le paramètre formatTexte. Pour cela, passez dans formatTexte une des constantes suivantes, placées dans le thème "BLOB" :

ConstanteTypeValeur
Mac Chaîne en CEntier long0
Mac Chaîne pascalEntier long1
Mac Texte avec longueurEntier long2
Mac Texte sans longueurEntier long3
UTF8 Chaîne en CEntier long4
UTF8 Texte avec longueurEntier long5
UTF8 Texte sans longueurEntier long6

Notes :

Les constantes "UTF8" sont utilisables uniquement lorsque l'application fonctionne en mode Unicode.

Les constantes "Mac" ne permettent pas de traiter des textes de plus de 32 ko.

Si vous souhaitez manipuler des jeux de caractères autres que UTF8, utilisez la commande CONVERTIR DEPUIS TEXTE.

Le tableau suivant décrit chacun de ces formats :

Format texteDescription et Exemples
Chaîne en C Le texte se termine par un caractère NULL (code ASCII $00).
UTF8"" $00
"Café" $43 61 66 C3 A9 00
Mac"" $00
"Café" $43 61 66 8E 00
Chaîne pascalLe texte est précédé d'un octet de longueur.
UTF8-
-
Mac"" $00
"Café" $04 43 61 66 8E
Texte avec longueurLe texte est précédé de 3 octets (UTF8) ou 2 octets (Mac) de longueur.
UTF8"" $00 00 00 00
"Café" $00 00 00 05 43 61 66 C3 A9
Mac"" $00 00
"Café" $00 04 43 61 66 8E
Texte sans longueurLe texte est composé seulement de ses caractères.
UTF8"" Pas de valeur
"Café" $43 61 66 C3 A9
Mac"" Pas de valeur
"Café" $43 61 66 8E

Si vous passez le paramètre optionnel *, la valeur de type Texte est ajoutée à la fin du BLOB et la taille de blob est modifiée en conséquence. Ainsi, à l'aide du paramètre optionnel *, vous pouvez stocker les unes derrière les autres autant de valeurs de type Entier, Entier long, Numérique ou Texte (référez-vous aux autres commandes sur les BLOBs) que vous voulez dans un BLOB, la seule limite étant celle de la mémoire disponible.

Si vous ne passez pas le paramètre optionnel * ni de variable dans le paramètre offset, la valeur de type Texte est stockée au début de blob en remplaçant son contenu précédent, et la taille du BLOB est modifiée en conséquence.

Si vous passez une variable dans le paramètre offset, la valeur de type Texte est écrite à l'offset offset, exprimé en octets (à partir de zéro), du BLOB. Quel que soit l'endroit où vous placez la valeur, la taille du BLOB sera augmentée si nécessaire en fonction de l'emplacement que vous avez défini (plus jusqu'à la taille du texte le cas échéant). Les octets redéfinis (autres que ceux que vous venez d'écrire) sont initialisés à la valeur zéro.

Après l'exécution de la commande, la variable du paramètre offset est incrémentée du nombre d'octets ayant été écrits. Vous pouvez par conséquent réutiliser la même variable avec une autre commande d'écriture de BLOB afin de placer une autre valeur juste après celle que vous venez d'écrire.

Exemple

Après l'exécution de ce code :

   FIXER TAILLE BLOB (vxBlob;0)
   C_TEXTE (vtValeur)
   vtValeur := "Café"  ` La longueur de vtValeur est de 4 octets
   TEXTE VERS BLOB (vtValeur;vxBlob;Mac Chaîne en C)  ` La taille du BLOB devient 5 octets
   TEXTE VERS BLOB (vtValeur;vxBlob;Mac Chaîne pascal)  ` La taille du BLOB devient 5 octets
   TEXTE VERS BLOB (vtValeur;vxBlob;Mac Texte avec longueur)  ` La taille du BLOB devient 6 octets
   TEXTE VERS BLOB (vtValeur;vxBlob;Mac Texte sans longueur)  ` La taille du BLOB devient 4 octets
   TEXTE VERS BLOB (vtValeur;vxBlob;UTF8 Chaîne en C)  ` La taille du BLOB devient 6 octets
   TEXTE VERS BLOB (vtValeur;vxBlob;UTF8 Texte avec longueur)  ` La taille du BLOB devient 9 octets
   TEXTE VERS BLOB (vtValeur;vxBlob;UTF8 Texte sans longueur)  ` La taille du BLOB devient 5 octets

Référence

BLOB vers entier, BLOB vers entier long, BLOB vers reel, BLOB vers texte, CONVERTIR DEPUIS TEXTE, ENTIER LONG VERS BLOB, ENTIER VERS BLOB, REEL VERS 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