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é
WINDEVWEBDEV - Code ServeurEtats et RequêtesWindowsJavaCode Utilisateur (MCU)AjaxHFSQL 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
WINDEVWEBDEV - Code ServeurWindowsJavaCode Utilisateur (MCU) 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