4D v16.3

VERIFIER FICHIER DONNEES

Accueil

 
4D v16.3
VERIFIER FICHIER DONNEES

VERIFIER FICHIER DONNEES 


 

VERIFIER FICHIER DONNEES ( cheminStructure ; cheminDonnées ; objets ; options ; méthode {; tabTables {; tabChamps}} ) 
Paramètre Type   Description
cheminStructure  Texte in Chemin d’accès du fichier de structure de la base à vérifier
cheminDonnées  Texte in Chemin d’accès du fichier de données de la base à vérifier
objets  Entier long in Objets à vérifier
options  Entier long in Options de vérification
méthode  Texte in Nom de la méthode 4D de rétroappel
tabTables  Tableau entier long in Numéros des tables à vérifier
tabChamps  Tableau entier 2D, Tableau entier long 2D, Tableau réel 2D in Numéros des index à vérifier

La commande VERIFIER FICHIER DONNEES effectue une vérification structurelle des objets contenus dans le fichier de données 4D désigné par cheminStructure et cheminDonnées.

Note : Pour plus d’informations sur le processus de vérification des données, reportez-vous au manuel Mode Développement.

cheminStructure désigne le fichier de structure (compilé ou non) associé au fichier de données à vérifier. Il peut s’agir du fichier de structure ouvert ou de tout autre fichier de structure. Vous devez passer un chemin d’accès complet, exprimé avec la syntaxe du système d’exploitation. Vous pouvez également passer une chaîne vide, dans ce cas une boîte de dialogue standard d’ouverture de fichiers apparaît, permettant à l’utilisateur de désigner le fichier de structure à utiliser.

cheminDonnées désigne un fichier de données 4D (.4DD). Il doit correspondre au fichier de structure défini par le paramètre cheminStructure. Attention, vous pouvez désigner le fichier de structure courant mais le fichier de données ne doit pas être le fichier courant (ouvert). Pour vérifier le fichier de données ouvert, utilisez la commande VERIFIER FICHIER DONNEES OUVERT. Si vous tentez de vérifier le fichier de données courant avec la commande VERIFIER FICHIER DONNEES, une erreur est générée.
Le fichier de données désigné est ouvert en lecture seulement. Vous devez veiller à ce qu’aucune application n’accède à ce fichier en écriture, sinon les résultats de la vérification pourront être faussés.
Vous pouvez passer dans le paramètre cheminDonnées une chaîne vide, un nom de fichier ou un chemin d’accès complet, exprimé dans la syntaxe du système d’exploitation. Si vous passez une chaîne vide, la boîte de dialogue standard d’ouverture de fichier apparaît, permettant à l’utilisateur de désigner le fichier à vérifier (à noter dans ce cas qu’il n’est pas possible de sélectionner le fichier de données courant). Si vous passez uniquement un nom de fichier de données, 4D le recherchera au même niveau que le fichier de structure défini.

Le paramètre objets permet de désigner le(s) type(s) d’objets à vérifier. Deux types d’objets peuvent être vérifiés : les enregistrements et les index. Utilisez les constantes suivantes, placés dans le thème Maintenance fichier de données :
Constante Type Valeur Comment
Tout vérifier Entier long 16
Vérifier enregistrements Entier long 4
Vérifier index Entier long 8 Cette option contrôle la cohérence physique des index, sans lien avec les données. Elle signale des clés invalides mais ne permet pas de détecter les clés dupliquées (deux index pointant vers le même enregistrement). Ce type d'erreur ne peut être détecté qu'avec l'option Tout vérifier.

Pour vérifier les enregistrements et les index, passez le cumul Vérifier enregistrements+Vérifier index. La valeur 0 (zéro) permet également d’obtenir le même résultat. L’option Tout vérifier effectue la vérification interne la plus complète. Cette vérification est compatible avec la création d’un historique.

Le paramètre options permet de définir les options de vérification. Les options suivantes sont disponibles, accessibles via des constantes du thème Maintenance fichier de données :
Constante Type Valeur Comment
Ne pas créer d'historique Entier long 16384 En principe, la commande crée un fichier d’historique au format xml (reportez-vous à la fin de la description de la commande). Vous pouvez annuler ce fonctionnement en passant cette option.
Nom historique avec date heure Entier long 262144 Lorsque cette option est passée, le nom du fichier d'historique généré contiendra la date et l'heure de sa création, par conséquent il ne remplacera aucun fichier d'historique éventuellement déjà généré. Par défaut, si cette option n'est pas passée, le nom du fichier n'est pas horodaté, et chaque nouveau fichier généré remplace le précédent.

Pour créer l’historique, passez 0 dans options.

Le paramètre méthode permet de définir une méthode de rétro-appel qui sera régulièrement appelée durant la vérification. Si vous passez une chaîne vide, aucune méthode n’est appelée. Si la méthode passée n’existe pas, la vérification n’est pas effectuée, une erreur est générée et la variable OK prend la valeur 0. Lorsqu’elle est appelée, cette méthode reçoit jusqu’à 5 paramètres en fonction des objets vérifiés et du type d’événement à l’origine de l’appel (cf. tableau des appels). Vous devez impérativement déclarer ces paramètres dans la méthode :
$1Entier longType de message (cf. tableau)
$2Entier longType d’objet
$3TexteMessage
$4Entier longNuméro de table
$5Entier longRéservé

Le tableau suivant décrit le contenu des paramètres en fonction du type d’événement :

Evénement$1 (Entier long)$2 (Entier long)$3 (Texte)$4 (Entier long)$5 (Entier long)
Message10Message de progressionPourcentage réalisé (0-100)Réservé
Vérification terminée(*)2Type d’objet(**)Texte du message OKNuméro de table ou d’indexRéservé
Erreur 3Type d’objet(**)Texte du message d’erreurNuméro de table ou d’indexRéservé
Fin d’exécution40DONE0Réservé
Warning5Type d'objet(**)Texte du message d'erreurNuméro de table ou d’indexRéservé

(*) L'événement Vérification terminée ($1=2) n'est jamais renvoyé lorsque le mode de vérification est Tout vérifier. Il n'est utilisé qu'en mode Vérifier enregistrements ou Vérifier index.

(**) Type d’objet : Lorsqu’un objet est vérifié, un message "terminé" ($1=2), erreur ($1=3) ou warning ($1=5) peut être envoyé. Le type d’objet retourné dans $2 peut être l’un des suivants :

  • 0 = indéterminé
  • 4 = enregistrement
  • 8 = index
  • 16 = objet structure (contrôle préliminaire du fichier de données).

Cas particulier : lorsque $4 = 0 pour $1 = 2, 3 ou 5, le message ne concerne pas une table mais le fichier de données dans son ensemble.

La méthode de rétro-appel doit également retourner une valeur dans $0 (Entier long), permettant de contrôler l’exécution de l’opération :

  • si $0 = 0, l’opération continue normalement
  • si $0 = -128, l’opération est stoppée sans erreur générée
  • si $0 = autre valeur, l’opération est stoppée et la valeur passée dans $0 est retournée en tant que numéro d’erreur. Cette erreur peut être interceptée par une méthode d’appel sur erreur.

Note : Il n'est pas possible d'interrompre l'exécution via $0 après que l'événement Fin d'exécution ($4=1) a été généré.

Deux tableaux facultatifs peuvent également être utilisés par la commande :

  • Le tableau tabTables contient les numéros des tables dont les enregistrements doivent être vérifiés. Il permet de limiter la vérification à certaines tables. Si ce paramètre n’est pas passé ou si le tableau est vide et que le paramètre objets contient Vérifier enregistrements, toutes les tables sont vérifiées.
  • Le tableau tabChamps contient les numéros des champs indexés dont les index doivent être vérifiés. Si ce paramètre n’est pas passé ou si le tableau est vide et que le paramètre objets contient Vérifier index, tous les index sont vérifiés. La commande ignore les champs non indexés. Si un champ contient plusieurs index, tous les index sont vérifiés. Si un champ fait partie d’un index composite, la totalité de l’index est vérifiée.
    Vous devez passer un tableau 2D dans tabChamps. Pour chaque ligne du tableau :
    - l’élément {0} contient le numéro de la table,
    - les autres éléments {1...n} contiennent les numéros des champs.

Par défaut, la commande VERIFIER FICHIER DONNEES crée un fichier d'historique au format xml (si vous n'avez pas passé l'option Ne pas créer d'historique, cf. paramètre options). Son nom est basé sur celui du fichier de structure de la base courante et il est également placé dans le dossier Logs de cette base. Par exemple, pour un fichier de structure nommé “myDB.4db”, le fichier d’historique sera nommé “myDB_Verify_Log.xml”.
Si vous avez passé l'option Nom historique avec date heure, le nom du fichier d'historique inclut la date et l'heure de sa création sous la forme "AAAA-MM-JJ HH-MM-SS", ce qui donne par exemple : “myDB_Verify_Log_2015-09-27 15-20-35.xml”. Ce principe permet d'éviter que chaque nouveau fichier d'historique écrase le précédent, mais pourra nécessiter ultérieurement une action manuelle afin de supprimer les fichiers superflus.
Quelle que soit l'option sélectionnée, dès lors qu'un fichier d'historique est généré, son chemin est retourné dans la variable système Document à l'issue de l'exécution de la commande.

Vérification simple des données et des index :

 VERIFIER FICHIER DONNEES($NomStruct;$NomData;Vérifier index+Vérifier enregistrements;Ne pas créer dhistorique;"")

Vérification complète avec historique :

 VERIFIER FICHIER DONNEES($NomStruct;$NomData;Tout vérifier;0;"")

Vérification des enregistrements uniquement :

 VERIFIER FICHIER DONNEES($NomStruct;$NomData;Vérifier enregistrements;0;"")

Vérification des enregistrements des tables 3 et 7 uniquement :

 TABLEAU ENTIER LONG($tnumTables;2)
 $tnumTables{1}:=3
 $tnumTables{2}:=7
 VERIFIER FICHIER DONNEES($NomStruct;$NomData;Vérifier enregistrements;0;"FollowScan";$tnumTables)

Vérification d’index spécifiques (index du champ 1 de la table 4 et index des champs 2 et 3 de la table 5) :

 TABLEAU ENTIER LONG($tnumTables;0) `non utilisé mais obligatoire
 TABLEAU ENTIER LONG($tindex;2;0) `2 lignes (colonnes ajoutées ensuite)
 $tindex{1}{0}:=4 ` numéro de table dans l’élément 0
 AJOUTER A TABLEAU($tindex{1};1) ` numéro du 1er champ à vérifier
 $tindex{2}{0}:=5 ` numéro de table dans l’élément 0
 AJOUTER A TABLEAU($tindex{2};2) ` numéro du 1er champ à vérifier
 AJOUTER A TABLEAU($tindex{2};3) ` numéro du 2e champ à vérifier
 VERIFIER FICHIER DONNEES($NomStruct;$NomData;Vérifier index;0;"FollowScan";$tnumTables;$tindex)

Si la méthode de rétro-appel passée n’existe pas, la vérification n’est pas effectuée, une erreur est générée et la variable OK prend la valeur 0. Si un fichier d'historique a été généré, son chemin complet est retourné dans la variable système Document.



Voir aussi  

VERIFIER FICHIER DONNEES OUVERT

 
PROPRIÉTÉS 

Produit : 4D
Thème : Environnement 4D
Numéro : 939
Nom intl. : VERIFY DATA FILE

Cette commande modifie la variable système OKCette commande modifie la variable système DocumentCette commande modifie la variable système Error

 
HISTORIQUE 

Modifié : 4D v11 SQL Release 3
Modifié : 4D v15 R3

 
UTILISATION DE L'ARTICLE

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