PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Caractéristiques du fichier de données créé
  • Les différents fichiers créés
  • Gestion du mot de passe
  • Gestion des erreurs fatales lors de la création d'un fichier de données
  • Gestion des alphabets non latins
  • Réplication : Plage d'identifiants
  • Priorité pour la définition de l'emplacement des fichiers du journal
  • Création ou ouverture d'une table existante
  • Gestion des index
  • Création du fichier de données à partir de sa description
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
HCréationSiInexistant (Fonction)
En anglais : HCreationIfNotFound
ODBCNon disponible avec ce type de connexion
Effectue les opérations suivantes :
  • Si le fichier de données n'existe pas, crée à vide un fichier de données (fichier d'extension ".FIC") avec le fichier d'index et le fichier mémo si nécessaire.
    La fonction est équivalente à la fonction HCréation.
  • Si le fichier de données existe, ouvre le fichier de données.
    La fonction est alors équivalente à la fonction HOuvre.
    Pour optimiser l'appel à la fonction HCréationSiInexistant, l'ouverture du fichier de données peut être également réalisée uniquement au premier accès réalisé sur le fichier de données (en utilisant la constante hOuvertureDifférée).
Remarque : Il est possible d'activer la création automatique des fichiers de données inexistants lors de la description du projet (onglet "Fichiers" de la description du projet, option "Créer automatiquement les fichiers de données si non présents à leur ouverture"). La fonction HCréationSiInexistant est automatiquement utilisée si le fichier de données n'existe pas lors de sa première manipulation.
WINDEVWEBDEV - Code ServeurHFSQL Si le fichier de données est journalé, il est possible de préciser l'emplacement des fichiers journaux.
HFSQL Client/Serveur Si des contraintes d'intégrité ont été définies et si elles sont gérées, les liaisons sont mises à jour par le serveur lors de la création du fichier de données.
Versions 15 et supérieures
WINDEV MobileAndroid Cette fonction est désormais disponible pour les applications Android.
Nouveauté 15
WINDEV MobileAndroid Cette fonction est désormais disponible pour les applications Android.
WINDEV MobileAndroid Cette fonction est désormais disponible pour les applications Android.
Versions 17 et supérieures
WINDEV MobileiPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Nouveauté 17
WINDEV MobileiPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
WINDEV MobileiPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Versions 18 et supérieures
WINDEV MobileWidget Android Cette fonction est désormais disponible en mode Widget Android.
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Nouveauté 18
WINDEV MobileWidget Android Cette fonction est désormais disponible en mode Widget Android.
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
WINDEV MobileWidget Android Cette fonction est désormais disponible en mode Widget Android.
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Versions 21 et supérieures
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Remarque : A partir de la version 19, HFSQL est le nouveau nom de HyperFileSQL.
// Création de tous les fichiers de données décrits dans l'analyse
// avec le mot de passe "PSW"
HCréationSiInexistant("*", "PSW")
// Création du fichier Commande (décrit dans l'analyse)
HCréationSiInexistant(Commande)
Syntaxe
<Résultat> = HCréationSiInexistant([<Nom du fichier> [, <Mot de passe> [, <Chemin du fichier JNL> [, <Chemin du fichier JournalOpération>]]] [, <Option>]])
<Résultat> : Booléen
  • Vrai si le fichier de données a été créé ou ouvert,
  • Faux en cas de problème. La fonction HErreur permet d'identifier l'erreur. En cas d'erreur fatale, un traitement spécifique est nécessaire pour continuer le programme et vérifier si le fichier de données a été créé (voir Notes).
<Nom du fichier> : Chaîne de caractères optionnelle (avec ou sans guillemets)
Nom du fichier de données à utiliser.
Si ce nom n'est pas spécifié, la fonction HCréationSiInexistant va manipuler le dernier fichier de données utilisé par la dernière fonction de gestion HFSQL (fonction commençant par la lettre H).
Si ce paramètre est égal à "*", tous les fichiers de données de l'analyse en cours seront créés ou ouverts. Si un mot de passe est précisé, ce mot de passe est utilisé pour tous les fichiers de données.
Ce paramètre peut également correspondre au nom d'un groupe de fichiers (ou perso-dossier) défini dans l'analyse. Si un mot de passe est précisé, ce mot de passe est utilisé pour tous les fichiers de données du groupe.
Attention : ce paramètre ne peut pas correspondre à une variable de type description de fichier.
Versions 17 et supérieures
iPhone/iPad Le nombre maximum de fichiers qui peuvent être ouverts simultanément par une application iPhone/iPad est de 256. Il est donc possible, au maximum, d'ouvrir simultanément 80 fichiers HFSQL (un fichier ".fic", un fichier ".ndx", un fichier ".mmo" par fichier de données HFSQL).
Nouveauté 17
iPhone/iPad Le nombre maximum de fichiers qui peuvent être ouverts simultanément par une application iPhone/iPad est de 256. Il est donc possible, au maximum, d'ouvrir simultanément 80 fichiers HFSQL (un fichier ".fic", un fichier ".ndx", un fichier ".mmo" par fichier de données HFSQL).
iPhone/iPad Le nombre maximum de fichiers qui peuvent être ouverts simultanément par une application iPhone/iPad est de 256. Il est donc possible, au maximum, d'ouvrir simultanément 80 fichiers HFSQL (un fichier ".fic", un fichier ".ndx", un fichier ".mmo" par fichier de données HFSQL).
<Mot de passe> : Chaîne de caractères optionnelle (avec guillemets)
  • Mot de passe associé au fichier de données.
  • Chaîne vide ("") si aucun mot de passe n'est utilisé.
<Chemin du fichier JNL> : Chaîne de caractères optionnelle (avec guillemets)
Chemin d'accès au fichier JNL associé au fichier de données journalé. Ce paramètre est pris en compte uniquement si le fichier de données est journalé. Dans ce cas, le fichier <Nom du Fichier>JNL.fic sera créé à l'emplacement spécifié.
Windows Mobile Ce paramètre ne doit pas être précisé. En effet, la journalisation n'est pas gérée par HFSQL Mobile. Cette limitation est due à l'optimisation de la taille des applications manipulées sous Pocket PC.
HFSQL Client/Serveur Ce paramètre ne doit pas être précisé. En effet, en HFSQL Client/Serveur, le chemin du fichier JNL est fixé et ne peut pas être modifié.
AndroidWidget AndroidiPhone/iPadPHP Ce paramètre est ignoré.
Java Accès par JDBC : Ce paramètre est ignoré.
<Chemin du fichier JournalOpération> : Chaîne de caractères optionnelle (avec guillemets)
Chemin d'accès du fichier JournalOpération et du fichier JournalIdentification associé au fichier de données journalé. Le fichier JournalOpération contient toutes les opérations effectuées sur le fichier de données journalé. Ce paramètre est pris en compte uniquement si le fichier de données est journalé.
Windows Mobile Ce paramètre ne doit pas être précisé. En effet, la journalisation n'est pas gérée par HFSQL Mobile. Cette limitation est due à l'optimisation de la taille des applications manipulées sous Pocket PC.
HFSQL Client/Serveur Ce paramètre ne doit pas être précisé. En effet, en HFSQL Client/Serveur, le chemin du fichier des opérations est fixé et ne peut pas être modifié.
AndroidWidget AndroidiPhone/iPadPHP Ce paramètre est ignoré.
Java Accès par JDBC : Ce paramètre est ignoré.
<Option> : Constante optionnelle
Optimisation de l'ouverture des fichiers de données existants.
hChangeAlphabetL'alphabet défini avec la fonction ChangeAlphabet sera pris en compte dans le nouveau fichier de données. Les tris, recherches, ... sur des clés de type chaîne (Chaînes, caractères, date et heure) seront effectuées selon cet alphabet.
hOuvertureDifféréeSi le fichier de données existe déjà, il ne sera ouvert que lors du premier accès au fichier de données. Si le fichier de données n'existe pas, il est créé et ouvert.
hSansLiaisonGestion de l'intégrité : Les liaisons ne sont pas mises à jour sur le serveur (création, modification, suppression selon le cas).
Rappel : Par défaut, lors de la création d'un fichier de données, les liaisons sont mises à jour sur le serveur.
HFSQL Client/Serveur Cette constante est disponible uniquement en mode HFSQL Client/Serveur.
PHP Ce paramètre est ignoré.
Java Accès par JDBC : Ce paramètre est ignoré.
Versions 15 et supérieures
AndroidWidget Android Ce paramètre est ignoré.
Nouveauté 15
AndroidWidget Android Ce paramètre est ignoré.
AndroidWidget Android Ce paramètre est ignoré.
Remarques
WINDEVWEBDEV - Code ServeurWINDEV MobileiPhone/iPadWindows MobileUniversal Windows 10 AppJavaAjaxHFSQLHFSQL Client/ServeurHyper File 5.5OLE DBAccès Natifs

Caractéristiques du fichier de données créé

Les caractéristiques du fichier de données créé sont les suivantes :
  • Nom du fichier de données :
    Nom physique défini lors de la description du fichier de données sous l'éditeur d'analyses. Ce nom peut être modifié avant la création du fichier de données grâce à la fonction HChangeNom.
  • Répertoire du fichier de données :
    Répertoire défini lors de la description du fichier de données sous l'éditeur d'analyses. Ce répertoire peut être modifié avant la création du fichier de données par les fonctions HChangeRep et HSubstRep.
    Remarque : Si l'UAC est actif (Windows Vista et supérieur), la localisation des données est spécifique : les données ne seront pas localisées dans le répertoire de l'application mais dans un répertoire spécifique de Windows. Dans ce cas, il est nécessaire de créer le répertoire des données de l'application (le chemin peut être obtenu à l'aide de la fonction fRepDonnéesUtilisateur).
  • L'ordre des rubriques créées dans le fichier physique est l'ordre physique des rubriques créées dans l'analyse et non l'ordre logique.
  • Contenu du fichier de données :
    Le fichier de données créé est vide ce qui ne signifie pas que sa taille est nulle (le fichier de données contient un entête décrivant sa structure).
Remarque : Si le fichier de données existait déjà (même nom, même répertoire), ce fichier de données est ouvert. Si la constante hOuvertureDifférée est spécifiée, le fichier de données ne sera ouvert que lors du premier accès (permet d'optimiser la vitesse de la fonction HCréationSiInexistant).
WINDEVWEBDEV - Code ServeurWINDEV MobileiPhone/iPadWindows MobileUniversal Windows 10 AppAjaxHFSQLHFSQL Client/ServeurHyper File 5.5OLE DBAccès Natifs

Les différents fichiers créés

Lors de la création d'un fichier de données, les fichiers suivants peuvent être créés en plus du fichier de données :
  • Un fichier d'index (d'extension ".NDX") si une ou plusieurs clés ont été définies dans la description du fichier de données.
  • Un fichier mémo (d'extension ".MMO") si une ou plusieurs rubriques de type mémo ont été définies dans la description du fichier de données.
  • Un fichier journal (d'extension ".JNL"). Ce fichier est créé uniquement si l'option correspondante a été sélectionnée lors de la description du fichier de données (voir paragraphe suivant).
    AndroidWidget AndroidiPhone/iPadWindows MobileUniversal Windows 10 AppPHP Ce fichier n'est pas créé.
  • Un fichier <NomProjet>.REP. Ce fichier contient la liste des fichiers de données manipulés par l'application. Ce fichier est créé (ou complété) si la gestion du .REP est active (fonction HGèreREP). Si la constante hOuvertureDifférée est spécifiée, le .REP sera mis à jour à l'ouverture automatique du fichier de données réalisée lors du premier accès au fichier de données. Pour plus de détails sur le fichier .REP, consultez Fichier .REP.
    Windows Mobile La fonction HCréationSiInexistant crée un fichier physique s'il n'existe pas. Cette fonction renseigne la liste des fichiers de données si la mise à jour de cette liste est activée et si la constante hOuvertureDifférée n'est pas utilisée.
    Si la constante hOuvertureDifférée est utilisée, la liste des fichiers de données sera mise à jour à l'ouverture automatique du fichier de données lors du premier accès au fichier de données. Pour plus de détails, consultez Liste des fichiers de données manipulés par une application.

    iPhone/iPadUniversal Windows 10 App Ce fichier n'est pas créé.

Gestion du mot de passe

Le mot de passe peut être défini :
  • directement à la création ou à l'ouverture du fichier de données avec la fonction HCréationSiInexistant.
  • avant la création du fichier de données grâce à la fonction HPasse.
Attention : Le mot de passe est indépendant du cryptage des données. Le cryptage des données doit être configuré lors de la description du fichier de données dans l'éditeur d'analyses (Onglet "Détail").
PHPAccès Natifs Le mot de passe n'est pas associé à un fichier de données mais à une base de données. Ce mot de passe doit être indiqué lors de la connexion (fonction HConnecte).

Gestion des erreurs fatales lors de la création d'un fichier de données

En cas d'erreur fatale lors de la création d'un fichier de données, il peut être intéressant de continuer le programme tout en vérifiant si le fichier de données a tout de même été créé. Pour cela, il est conseillé de faire le traitement d'exception suivant :
QUAND EXCEPTION DANS
HCréationSiInexistant(PERE)
FAIRE
Erreur("Erreur HFSQL : " + HErreur())
SINON
Trace("fichier créé")
FIN
WINDEVWEBDEV - Code ServeurWINDEV MobileiPhone/iPadWindows MobileUniversal Windows 10 AppAjaxHFSQLHFSQL Client/ServeurHyper File 5.5OLE DBAccès Natifs

Gestion des alphabets non latins

Si la constante hChangeAlphabet est précisée, l'alphabet utilisé dans le fichier de données sera celui précisé par la fonction ChangeAlphabet. Les tris, recherches, ... sur des clés de type chaîne (Chaînes, caractères, date et heure) seront effectuées selon cet alphabet.
L'alphabet utilisé pourra ensuite être modifié avec la fonction HRéindexe.
Remarque : la taille des rubriques de type chaîne spécifiée dans l'analyse est une taille en octets et non en caractères. Selon l'alphabet utilisé, il peut être nécessaire d'augmenter la taille de la rubrique (par exemple si les caractères utilisés sont codés sur 2 octets).
Pour plus de détails sur la gestion des alphabets non latins dans les fichiers de données, consultez Gérer des alphabets spécifiques dans des fichiers de données.
WINDEVWEBDEV - Code ServeurAjaxHFSQLHFSQL Client/ServeurHyper File 5.5

Réplication : Plage d'identifiants

Les identifiants automatiques des fichiers des réplicas abonnés utilisent une plage d'identifiants différente de celle du fichier de réplica maître et des autres fichiers de réplicas abonnés.
Cette plage d'identifiants automatiques est inscrite dans l'entête de chaque fichier de données (extension ".FIC").
Cette plage est initialisée :
  • lors de la création d'un fichier de données (fonctions HCréation, HCréationSiInexistant).
  • grâce à l'outil WDReplic (option "Outils .. WDReplic" dans le menu de l'éditeur).grâce à l'outil WDReplic (sous le volet "Outils", dans le groupe "Base de données", déroulez "Réplication" et sélectionnez "WDReplic - Gestionnaire de réplication").grâce à l'outil WDReplic.
  • lors de l'utilisation de la fonction HInitAbonné.
Pour plus de détails, consultez les conséquences de la mise en place de la réplication.
WINDEVWEBDEV - Code ServeurWINDEV MobileWindows MobileAjaxHFSQLHyper File 5.5

Priorité pour la définition de l'emplacement des fichiers du journal

La définition de l'emplacement des fichiers journal se fait selon l'ordre de priorité suivant :
  1. Emplacement spécifié lors de la création du fichier de données journalé (fonction HCréationSiInexistant).
  2. Emplacement spécifié par la fonction HChangeRepJNL.
  3. Emplacement spécifié dans l'analyse.
  4. Emplacement du fichier de données journalé.
Si une autre application utilise la fonction HDéclareExterne sur un fichier de données journalé, les modifications effectuées par cette application sont enregistrées dans les fichiers journaux spécifiés dans l'entête du fichier de données HFSQL journalé.
HFSQL Client/Serveur L'emplacement des fichiers du Journal est fixe et ne peut pas être modifié. Pour plus de détails, consultez Fichiers du journal en mode Client/Serveur.
WINDEVWEBDEV - Code ServeurWINDEV MobileWindows MobileOLE DB

Création ou ouverture d'une table existante

Si la table existe déjà, la table est ouverte.
Si la table n'existe pas, la table est créée. Lors d'une création de table, WINDEV et WEBDEV tentent de créer les rubriques dans le type OLE DB correspondant au type HFSQL. Si ce type n'est pas supporté, le moteur HFSQL essaye successivement tous les types OLEDB "compatibles" jusqu'à trouver un type supporté par la base OLEDB.
WINDEVWEBDEV - Code ServeurWINDEV MobileWindows MobilePHPAccès Natifs

Gestion des index

Si l'ajout d'un index échoue, aucun message d'erreur n'est renvoyé par la fonction HCréationSiInexistant. La table est simplement créée sans l'index posant problème. Dans ce cas, il est possible de trouver des doublons dans une rubrique considérée comme clé unique par WINDEV ou WEBDEV si la base de données externe ne peut pas gérer de clé unique.

Création du fichier de données à partir de sa description

Il est possible de créer directement le fichier de données à vide à partir de sa description dans l'éditeur d'analyses. Il suffit de sélectionner l'option "Créer le fichier des données" du menu contextuel du fichier de données (dans le graphe de l'analyse) et de sélectionner le répertoire dans lequel le fichier de données doit être créé.
Composantes
WINDEVWEBDEV - Code Serveur wd220hf.dll
Windows Mobile wp220hf.dll
Java wd220java.jar
Linux wd220hf.so
Android wd220android.jar
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Petit oubli dans la documentation
Le mot de passe peut contenir tous les caractères que vous voulez mais si vous voulez visualisez le contenu du fichier depuis le centre de contrôle HyperFileSQL vous ne pourrez saisir que des lettres majuscules et des chiffres. Dommage donc si vous aviez mis des minuscules.
Jir4
21 avr. 2016