DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Fonctions HFSQL
  • Exemple 1 : Créer un alias pour utiliser les données d'un fichier archivé
  • Exemple 2 : Copier des données entre deux fichiers ayant la même structure
Exemple 1 : Créer un alias pour utiliser les données d'un fichier archivé
WEBDEV - Code ServeurWindowsAjaxHFSQL ClassicProcédures stockées L'exemple suivant permet de manipuler les données du fichier Commande2013, fichier des commandes de l'année 2013, archivé dans le répertoire D:\Gestcom\Archive2013. Ce fichier correspond à la description du fichier COMMANDE présent dans l'analyse.
// Création d'un alias du fichier COMMANDE
// (Syntaxe disponible à partir de la version 19)
Commande2013 est une Source de Données <description=Commande>
SI HAlias(Commande, Commande2013) = Vrai ALORS
// COMMANDE2013 peut maintenant être utilisé dans les traitements
// Il se comporte de façon identique
// au fichier COMMANDE décrit dans l'analyse.
// Modification du répertoire
HChangeRep(Commande2013, "D:\Gestcom\Archive2013")
// Modification du nom
HChangeNom(Commande2013, "Commande")
HOuvre(Commande2013)
...
// Traitements sur le fichier Commande2013
...
FIN
// Annulation de l'alias
HAnnuleAlias(Commande)
Exemple 2 : Copier des données entre deux fichiers ayant la même structure
WEBDEV - Code ServeurWindows Cet exemple permet de copier les enregistrements du fichier ClientTemp.Fic vers le fichier Client.Fic. Le fichier ClientTemp dans cet exemple est un fichier existant contenant les clients à recopier dans le fichier Client.
// Déclaration de l'alias
ClientTemp est une Source de Données <description=Client>
// (Syntaxe disponible à partir de la version 19)
// Création de l'alias
SI HAlias(Client, ClientTemp) = Vrai ALORS
// Si le fichier ClientTemp.FIC est dans un autre répertoire,
// il faut ajouter :
// HChangeRep(ClientTemp, "C:\MonRep\RepAlias")
// Création physique (ou ouverture) du fichier ClientTemp.Fic
HCréationSiInexistant(ClientTemp)
  // Pour filtrer les enregistrements copiés,
// ajoutez une fonction HFiltre ici
...
  // Parcours des enregistrements du fichier ClientTemp.Fic
  HLitPremier(ClientTemp, "NomClient")
  TANTQUE PAS HEnDehors(ClientTemp)
// Copie en mémoire l'enregistrement
// du fichier ClientTemp.Fic vers le fichier Client.Fic
 SI HCopieEnreg(Client, ClientTemp) = Vrai ALORS
 // Ajout dans le fichier Client.Fic
 // Identifiant auto du fichier recalculé s'il existe
 HAjoute(Client)
 // Ajout OK ? (Vérifier intégrité et doublon)
 SI HErreurDoublon() = Vrai OU ...
HErreurIntégrité() = Vrai ALORS
  SI OuiNon("Erreur de doublon " + ...
"ou d'intégrité " + ...
"pendant l'ajout de " + ...
Client.NomCLient + RC + ...
"Continuer ?") = Faux ALORS
// Arrêt traitement de copie des enreg
// Sortie de la boucle TANTQUE
SORTIR
  FIN
 FIN
  SINON
// Erreur sur la fonction HCopieEnreg
// Affichage d'un message d'erreur
Erreur("Copie d'enregistrement impossible")
// Interruption du traitement
// Sortie de la boucle TANTQUE
SORTIR
  FIN
  HLitSuivant(ClientTemp, "NomClient")
FIN
SINON
// Erreur sur la fonction HAlias
// Affichage d'un message sur l'erreur
  Erreur("Détail du Problème" + HErreurInfo())
FIN
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Inversion des nom de tables
Il me semble que les tables appelées sont inversées : parcourir des enregistrements sur une table que l'on vient de créer est une aberration.
pbs
11 jan. 2019

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale