Dans 4D v12.1, les mécanismes d'exportation des données de la base via le SQL ont été enrichis afin de permettre aux développeurs de paramétrer plus finement l'opération en fonction de la typologie des données exportées :
- les commandes SQL EXPORTER BASE et SQL EXPORTER SELECTION admettent un paramètre supplémentaire permettant d'inclure les données binaires dans le fichier d'export,
- le moteur SQL de 4D prend désormais en charge des données stockées au format hexadécimal.
Les commandes SQL EXPORTER BASE et SQL EXPORTER SELECTION admettent un paramètre optionnel supplémentaire : tailleLimiteChamps. Ce paramètre est pris en compte uniquement lorsque la base contient des champs de type BLOB, Image ou Texte.
Vous devez passer dans ce paramètre une valeur en octets indiquant la taille au-dessous de laquelle les champs des types BLOB, Image ou Texte (textes à stockage externe, c'est-à-dire stockés en-dehors des enregistrements) seront exportés à l'intérieur du fichier "Export.SQL" principal, et non dans des fichiers séparés dans les sous-dossiers BLOBs.
Ce paramètre permet de contrôler la quantité de fichiers externes générés lors d'un export et donc de réduire la durée de l'opération, en particulier lorsque la base contient de nombreux enregistrements BLOB, Image ou Texte contenant des données de taille réduite.
Lorsqu'elles sont incluses dans le fichier "Export.SQL" principal, les données binaires (champs BLOB ou Image) sont stockées au format hexadécimal. Pour pouvoir les interpréter, le moteur SQL de 4D accepte désormais cette notation (cf. ci-dessous).
Le moteur SQL de 4D prend désormais en charge la notation hexadécimale pour les valeurs littérales (val_littérale). Les valeurs hexadécimales sont composées de chiffres (0 à 9) et/ou de lettres (A à F) et permettent d'exprimer tout type de données sous forme d'octets. Un octet est toujours défini par deux valeurs hexadécimales.
Pour indiquer l'emploi de cette notation dans une commande SQL, vous devez simplement utiliser la syntaxe hexadécimale SQL standard :
X'<valeur hexadécimale>'
Par exemple, pour la valeur décimale 15, vous pouvez écrire X'0f'. Il est possible de définir une valeur vide (zéro octet) en écrivant X''.
Note : Cette fonctionnalité est liée au nouveau paramètre des commandes SQL EXPORTER BASE et SQL EXPORTER SELECTION, puisque les données binaires éventuellement intégrées au fichier d'export sont stockées au format hexadécimal.