4D v14.3

FIXER CHEMIN DONNEES EXTERNES

Accueil

 
4D v14.3
FIXER CHEMIN DONNEES EXTERNES

FIXER CHEMIN DONNEES EXTERNES 


 

FIXER CHEMIN DONNEES EXTERNES ( leChamp ; chemin ) 
Paramètre Type   Description
leChamp  Texte, BLOB, Image in Champ pour lequel définir le lieu de stockage
chemin  Texte, Entier long in Chemin d’accès et nom du fichier de stockage externe ou
0 = utiliser la définition en structure
1 = utiliser le dossier par défaut

La commande FIXER CHEMIN DONNEES EXTERNES permet de définir ou de modifier, pour l’enregistrement courant, l’emplacement de stockage externe du champ leChamp passé en paramètre.

4D (à compter de la version 13) autorise le stockage des données des champs de type Texte, Blob et Image à l'extérieur du fichier de données. Pour une description complète de cette fonctionnalité, reportez-vous au manuel Mode Développement.

Le paramétrage défini par cette commande sera appliqué uniquement lors du stockage sur disque de l’enregistrement courant. Les paramètres de stockage définis dans la structure de l’application ne sont pas modifiés. Si l’enregistrement courant est annulé, la commande ne fait rien. Une fois la commande exécutée, 4D maintient automatiquement le lien entre le champ de l’enregistrement et le fichier sur disque, il n’est pas nécessaire de réexécuter la commande (hormis si le chemin doit être modifié). 

Vous pouvez passer dans chemin soit un chemin d’accès personnalisé, soit une constante désignant un emplacement automatique :

  • chemin d’accès personnalisé au fichier
    Dans ce cas, vous utilisez le stockage externe en "mode personnalisé". Dans ce mode, certaines fonctions de base de données de 4D ne sont pas disponibles automatiquement (cf. manuel Mode Développement).
    Vous pouvez passer un chemin relatif au fichier de données ou un chemin absolu, incluant le nom du fichier de stockage et son extension (pour définir un chemin relatif, passez "../" au début de la chaîne). L’extension doit correspondre au type réel des données (il n’y a pas de conversion au moment du stockage). Vous devez utiliser la syntaxe système. Vous pouvez désigner tout dossier, y compris le dossier par défaut des fichiers externes de la base (nomBase.ExternalData) - dans ce cas, les fichiers seront inclus lors de la sauvegarde de la base. Si un dossier n’existe pas, 4D le créera automatiquement (une erreur est retournée si la création échoue, par exemple si les droits sont insuffisants).
    Si vous stockez le fichier externe dans le même dossier que le fichier de données ou un de ses sous-dossiers, 4D considérera que le chemin défini est relatif au fichier de données et maintiendra le lien même si le dossier du fichier de données est déplacé ou renommé.
    A noter que ce principe permet de "partager" un même fichier externe entre plusieurs enregistrements. Toute modification effectuée sur ce fichier externe est disponible dans tous les enregistrements. Attention dans ce cas, si plusieurs process peuvent écrire simultanément les mêmes champs, vous devez empêcher les accès concurrents via des sémaphores afin de ne pas risque d’endommager les fichiers externes.
  • emplacement automatique
    Vous pouvez désigner deux emplacements automatiques, à l’aide des constantes suivantes, placées dans le thème Maintenance fichier de données :
    Constante Type Valeur Commentaire
    Utiliser définition structure Entier long 0 4D utilisera les paramètres définis dans la structure pour le stockage du champ (cf. manuel Mode Développement). Si vous passez d’un stockage externe à un stockage interne, le fichier externe n’est pas supprimé.
    Utiliser dossier par défaut Entier long 1 Les données du champ passé en paramètre seront stockées dans le dossier par défaut, nommé nomBase.ExternalData et placé à côté du fichier de données. Dans ce mode, les données externes sont gérées par 4D comme si elles étaient à l’intérieur du fichier de données. 

Note : La commande FIXER CHEMIN DONNEES EXTERNES peut uniquement être exécutée sur 4D local ou 4D Server. Si elle est exécutée sur un 4D distant, elle ne fait rien.

Vous souhaitez stocker le contenu d’un champ image à l’extérieur des données s’il dépasse une certaine taille. Dans le bouton de validation du formulaire, vous pouvez écrire :

 Si(Taille image([Photos]InputField)>1300000)
  // stocker les gros fichiers hors data
    FIXER CHEMIN DONNEES EXTERNES([Photos]InputField;"C:\\Storage\\LargePicts\\"+Chaine(Numero enregistrement)+".jpg")
 Sinon
  // stocker les fichiers de plus petite taille comme défini en structure
    FIXER CHEMIN DONNEES EXTERNES([Photos]InputField;Utiliser définition structure)
 Fin de si

Vous souhaitez stocker le contenu du champ image à l'extérieur des données et relativement au fichier de données de la base :

 CREER ENREGISTREMENT([Photos])
 [Photos]Vignette:=$small_pic
 FIXER CHEMIN DONNEES EXTERNES([Photos]Vignette;"../custom"+Séparateur dossier+$picname)
     //stockage dans "/custom/" à côté du fichier de données
 STOCKER ENREGISTREMENT([Photos])

 
PROPRIÉTÉS 

Produit : 4D
Thème : Définition structure
Numéro : 1134
Nom intl. : SET EXTERNAL DATA PATH

Comportement différent en mode distant

 
HISTORIQUE 

Créé : 4D v13

 
VOIR AUSSI  

Lire chemin donnees externes
RECHARGER DONNEES EXTERNES

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v14 R3)
4D - Langage ( 4D v14 R2)
4D - Langage ( 4D v13.5)
4D - Langage ( 4D v14.3)
4D - Langage ( 4D v14 R4)