DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Types de variables HFSQL
  • Manipuler une requête ou une vue par programmation
  • Utiliser une source de données dans une requête SQL
  • Propriétés associées aux variables de type Source de données
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Une variable de type Source de données permet de décrire une source de données temporaire (requête, vue, alias, ... ).
Toutes les opérations possibles sur une vue (respectivement une requête) pourront être effectuées sur une variable de type Source de données associée à une vue (respectivement une requête).
Pour décrire une source de données, il est nécessaire de :
  1. Déclarer une variable de type "Source de données".
  2. Initialiser la source de données (fonctions HExécuteRequêteSQL ou HCréeVue).
    La source de données sera automatiquement libérée à la fin du traitement dans lequel cette source de données est déclarée.
    Remarque : La source de données peut également être initialisée avec la fonction HDéclareExterne. Dans ce cas, la source de données permet de manipuler un fichier de données en utilisant la description de ce fichier, indépendamment de l'analyse.
Remarques :
  • A la fermeture de l'application (ou du traitement où la source de données a été déclarée), la source de données sera automatiquement détruite.
  • Une source de données est toujours globale au contexte HFSQL dans lequel elle a été déclarée.
  • Une source de données peut posséder un nom interne différent du nom de la variable, par exemple pour permettre son utilisation dans un tableau. Dans la fenêtre de description du projet (onglet "Compilation", il est possible de définir les options de "Nommage des sources de données".
Exemple
// Déclaration d'une source de données
MaSourceDonnée est une Source de Données
MaSourceDonnée1, MaSourceDonnée2 sont des Sources de Données
// Initialiser une variable de type Source de données
MaRequête est une Source de Données
// MaRequête est associée à une requête
// Initialisation de la variable MaRequête
HExécuteRequêteSQL(MaRequête, "SELECT NOM FROM CLIENT")
// Initialiser une variable de type Source de données
MaVue est une Source de Données
// MaVue est associée à une vue
// Initialisation de la variable MaVue
HCréeVue(MaVue, CLIENT, "*", "NOM,VILLE", "NOM]='A'", hVueDéfaut)
// Supprimer une source de données
MaRequête est une Source de Données
HExécuteRequêteSQL(MaRequête, "SELECT NOM FROM CLIENT")
// Destruction de la source de données associée à la variable MaRequête
HAnnuleDéclaration(MaRequête)
HExécuteRequêteSQL(MaRequête, "SELECT NOM FROM FOURNISSEUR")
// Suppression d'une source de données
MaVue est une Source de Données
// MaVue est associée à une vue
// Initialisation de la variable MaVue
HCréeVue(MaVue, CLIENT, "*", "NOM,VILLE", "NOM]='A'", hVueDéfaut)
// Destruction de la source de données associée à la variable MaVue
HDétruitVue(MaVue)
HCréeVue(MaVue, CLIENT, "*", "NOM,PRENOM", "NOM]='C'", hVueDéfaut)
Syntaxe

Déclarer une ou plusieurs sources de données Masquer les détails

<Nom de la variable> est une Source de Données
<Nom de la variable 1>, <Nom de la variable 2> sont des Sources de données
<Nom de la variable> :
Nom de la variable de type "Source de données" à déclarer.
Remarque : Les mots-clés une et des ne sont pas obligatoires : ce sont des mots d'agrément.

Déclarer une source de données en l'associant à un fichier de données ou une requête Masquer les détails

<Nom de la variable> est une Source de Données <description=Nom Fichier ou Requête>
<Nom de la variable> :
Nom de la variable de type "Source de données" à déclarer.
<Nom Fichier ou Requête> :
Nom du fichier de données ou de la requête dont la description doit être associée à la source de données. Si ce paramètre est précisé, la complétion proposera les différentes rubriques de la source de données associée.
source de données

Initialiser une variable de type "Source de données" (requête ou vue) Masquer les détails

Pour initialiser une variable de type "Source de données", utilisez la fonction :

Supprimer la source de données (requête ou vue) Masquer les détails

Lorsque la même variable de type Source de données est utilisée plusieurs fois, avec des sources de données différentes, il est nécessaire de libérer la première source de données.

Pour libérer l'espace mémoire occupé par la source de données (requête ou vue), utilisez la fonction :
Remarques

Manipuler une requête ou une vue par programmation

Pour manipuler une requête ou une vue par programmation, il est conseillé d'utiliser une variable de type "Source de données".
Vous pouvez cependant donner un nom logique lors de l'initialisation de la requête ou de la vue. Il sera alors nécessaire d'utiliser le mot-clé Externe pour manipuler directement la vue ou la requête dans l'éditeur de code. Cette méthode peut ralentir la vitesse d'exécution de vos traitements.
Remarque : Lors de l'utilisation d'un nom logique, la requête ou la vue n'est pas détruite automatiquement : il est nécessaire d'utiliser les fonctions HAnnuleDéclaration et HDétruitVue.
Par exemple :
  • Initialiser une requête :
    1. Initialiser une requête avec un nom logique :
      EXTERNE MaRequête
      HExécuteRequêteSQL(MaRequête, "SELECT NOM FROM CLIENT")
      // Autre syntaxe possible :
      // HExécuteRequêteSQL("MaRequête", "SELECT NOM FROM CLIENT")
       
      // Utilisation de la requête
      HLitPremier(MaRequête, Nom)
      SI PAS HEnDehors() ALORS
      Info("Le 1er client est : " + MaRequête.Nom)
      FIN
      ...
      HAnnuleDéclaration(MaRequête)
    2. Initialiser une requête avec une variable "Source de données" :
      MaRequête est une Source de Données
      HExécuteRequêteSQL(MaRequête, "SELECT NOM FROM CLIENT")
      // Utilisation de la requête
      HLitPremier(MaRequête, Nom)
      SI PAS HEnDehors() ALORS
      Info("Le 1er client est : " + MaRequête.Nom)
      FIN
  • Initialiser une vue :
    1. Initialiser une vue avec un nom logique :
      EXTERNE MaVue
      HCréeVue(MaVue, CLIENT, "*", "NOM,VILLE", "NOM]='A'", hVueDéfaut)
      // Autre syntaxe possible :
      // HCréeVue("MaVue", CLIENT, "*", "NOM,VILLE", "NOM]='A'", hVueDéfaut)

      // Utilisation de la vue
      HLitPremier(MaVue, Nom)
      SI PAS HEnDehors() ALORS
      Info("Le 1er client est : " + MaVue.Nom)
      FIN
      ...
      HDétruitVue(MaVue)
    2. Initialiser une vue avec une variable "Source de données" :
      MaVue est une Source de Données
      HCréeVue(MaVue, CLIENT, "*", "NOM,VILLE", "NOM]='A'", hVueDéfaut)
      // Utilisation de la vue
      HLitPremier(MaVue, Nom)
      SI PAS HEnDehors() ALORS
      Info("Le 1er client est : " + MaVue.Nom)
      FIN

Utiliser une source de données dans une requête SQL

Pour utiliser une source de données dans le code SQL d'une requête, le code SQL de la requête doit utiliser le nom logique attribué à la source de données.
Par exemple, le code suivant est utilisable quel que soit le mode de nommage de la source de données :
TicketArchive est une Source de Données
HDéclareExterne("Ticket_Bak.FIC", TicketArchive)
     
REQ est une Source de Données 
sMaReq est une chaîne = [
SELECT *
FROM [%TicketArchive%]
WHERE CODEPOSTAL='26110'
]

SI HExécuteRequêteSQL(REQ, hRequêteDéfaut, sMaReq) ALORS
Info(HNbEnr(REQ) + " tickets correspondent.")
FIN
Exemple de code à utiliser dans le cas où la description du fichier externe est celle d'un des fichiers de l'analyse :
TicketArchive est une Source de Données <description=Ticket>
HDéclareExterne("Ticket.FIC", TicketArchive)
REQ est une Requête SQL = [
SELECT *
FROM [%TicketArchive%]
]
HExécuteRequête(REQ)
POUR TOUT REQ 
Trace(REQ.IDTicket)
FIN

Propriétés associées aux variables de type Source de données

Les propriétés associées aux variables de type Source de données sont les suivantes. Ces propriétés sont identiques à celles s'appliquant à un fichier de données :
AbréviationRenvoie l'abréviation de la source de données.
AlphabetPermet de connaître l'alphabet utilisé par la source de données.
BaseDeDonnéesPermet de connaître et de modifier la base de données associée à une connexion (HFSQL Client/Serveur, OLE DB, ...).
BorneMaxRécupère la borne maximale du filtre en cours (défini par la fonction HFiltre) sur une source de données.
BorneMinRécupère la borne minimale du filtre en cours (défini par la fonction HFiltre) sur une source de données.
CompressionMMOParamètre le mode de compression du fichier MMO (contenant les mémos binaire et texte) associé à la source de données.
ConditionFiltreRenvoie la condition de sélection mise en place par la fonction HFiltre sur une source de données.
ConnexionPermet de connaître la connexion actuellement associée à une source de données.
CryptageFicParamètre le mode de cryptage de la source de données.
CryptageMMOParamètre le mode de cryptage du fichier mémo (d'extension .MMO) associé à la source de données.
CryptageNdxParamètre le mode de cryptage du fichier d'index associé à la source de données.
CxAccèsGère le type d'accès au fichier lors de la connexion OLE DB à une table spécifique (en tenant compte des modifications effectuées par la fonction HConnecte).
CxAccèsDécritGère le type d'accès au fichier lors de la connexion OLE DB à une table spécifique (sans tenir compte des modifications effectuées par la fonction HConnecte).
CxBaseDeDonnéesGère la source de données OLE DB lors de la connexion OLE DB à une table spécifique (en tenant compte des modifications effectuées par la fonction HConnecte).
CxBaseDeDonnéesDécriteGère la source de données OLE DB lors de la connexion OLE DB à une table spécifique (sans tenir compte des modifications effectuées par la fonction HConnecte).
CxInfosEtenduesPermet de connaître les informations supplémentaires insérées dans la chaîne de connexion à la base de données.
CxInitialCatalogPermet de connaître la base de données par défaut définie pour l'accès.
CxLibelléDécritParamètre le libellé de la connexion à la source de données OLE DB.
CxOptionsCurseurPermet de connaître le type curseur utilisé lors d'une connexion à une base de données externe.
CxProviderOLEDBGère le nom du provider OLE DB utilisé (en tenant compte des modifications effectuées par la fonction HConnecte).
CxProviderOLEDBDécritGère le nom du provider OLE DB (sans tenir compte des modifications effectuées par la fonction HConnecte).
CxUtilisateurGère le nom de l'utilisateur lors d'une connexion OLE DB (en tenant compte des modifications effectuées par la fonction HConnecte).
CxUtilisateurDécritGère le nom de l'utilisateur lors d'une connexion OLE DB (sans tenir compte des modifications effectuées par la fonction HConnecte).
ExécutionTerminéePermet de savoir si une requête ou une vue HFSQL Classic ou Client/Serveur a fini de s'exécuter.
ExtensionPermet de connaître ou de modifier l'extension d'un fichier de données.
FichierJournalPermet de savoir si un fichier de données est un fichier journal.
FichierTransactionPermet de savoir si un fichier de données est un fichier de transaction.
FiltreAvecBornesPermet de savoir si des bornes ont été précisées sur le filtre mis en place par la fonction HFiltre sur une source de données.
FormatParamètre le format des données du fichier de données (ANSI ou Unicode).
GrosFichierParamètre la taille maximale de la source de données.
GUIDAnalyseRenvoie le GUID de l'analyse qui a permis de créer le fichier de données.
GUIDFichierRenvoie le GUID du fichier défini dans l'analyse qui a permis de créer le fichier de données.
IDAutoMaxPermet de connaître l'identifiant automatique maximum sur un fichier répliqué.
IDAutoMinPermet de connaître l'identifiant automatique minimum sur un fichier répliqué.
InfosEtenduesRenvoie et modifie les informations supplémentaires d'un fichier de données ou d'une rubrique accédé via un Connecteur Natif.
JournalisationRenvoie le mode de journalisation d'un fichier de données.
NbRubriqueRenvoie le nombre total de rubriques (y compris les clés composées) présentes dans un enregistrement d'un fichier décrit sous l'éditeur d'analyses, un fichier décrit par programmation, une vue HFSQL ou une requête.
NbRubriqueCléRenvoie le nombre total de rubriques clé (y compris les clés composées) présentes dans un enregistrement d'un fichier décrit sous l'éditeur d'analyses, un fichier décrit par programmation, une vue HFSQL ou une requête.
NbRubriqueMémoRenvoie le nombre total de rubriques mémo présentes dans un enregistrement d'un fichier décrit sous l'éditeur d'analyses, un fichier décrit par programmation, une vue HFSQL ou une requête.
NomGère le nom des différents objets HFSQL.
Nom55Gère le nom logique d'un fichier au format Hyper File 5.5 présent dans une analyse au format HFSQL Classic.
NomDécritGère le nom logique d'un fichier de données.
NomPhysiqueGère le nom physique des fichiers de données.
NomPhysiqueDécritGère le nom physique des fichiers HFSQL (sans tenir compte des changements de noms réalisés grâce à la fonction HChangeNom).
NullSupportéPermet de gérer la valeur NULL dans un fichier HFSQL.
NuméroGénérationPermet de connaître le numéro de génération du fichier physique associé au fichier logique spécifié.
ProtégéParMotDePassePermet de savoir si un fichier est protégé ou non par mot de passe.
RépertoireGère le répertoire physique des fichiers HFSQL. Cette propriété tient compte des changements de répertoires réalisés grâce aux fonctions HChangeRep ou HSubstRep.
RépertoireDécritGère le répertoire physique des fichiers HFSQL. Cette propriété ne tient pas compte des changements de répertoires réalisés grâce aux fonctions HChangeRep ou HSubstRep.
RépertoireJournalGère le répertoire du fichier journal décrit dans l'analyse.
RépertoireJournalOpérationPermet de gérer le répertoire du fichier des opérations du journal associé à un fichier Journalé.
RépertoireRéplicationPermet de gérer le répertoire du réplica (fichier ".RPL" ou ".RPM").
RépertoireSauvegardeJournalPermet de connaître et de modifier le répertoire de sauvegarde des fichiers Journal.
RéplicationPermet de connaître le mode de réplication utilisé pour un fichier de données (fichier défini sous l'éditeur d'analyses ou défini par programmation). Pour les fichiers définis par programmation, il est possible d'indiquer si ce fichier est en mode réplication journalée ou non.
RubriqueFiltréePermet de connaître la rubrique sur laquelle un filtre a été mis en place par la fonction HFiltre sur un fichier de données, une vue HFSQL ou une requête.
RubriqueTexteComplétéeParamètre la gestion des rubriques texte dans un fichier HFSQL. Les rubriques texte peuvent être complétées automatiquement par des espaces (fonctionnement identique à celui de WINDEV 5.5) ou non.
SécuriséParamètre le niveau de sécurité du cryptage des fichiers.
TailleEnregistrementRenvoie la taille d'un enregistrement (en octets), sans tenir compte des clés composées.
TypeIdentifie et modifie le type d'une rubrique.
WDD55Chemin du fichier WDD au format 5.5 utilisé pour manipuler des fichiers au format 5.5 dans une application WINDEV, WEBDEV ou WINDEV Mobile.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 27/02/2024

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