HyperFileSQL supporte en standard un ensemble de concepts visant à faciliter l’administration, la gestion, le déploiement et la sécurité des bases de données :
• gestion automatique des accès concurrentiels • gestion de contextes indépendants
• trigger
• intégrité référentielle • filtre, vue, requête
• statistiques d’exploitation de la base • transactions
• journalisation • cryptage des données • compression de données
• support des caractères UNICODE • import/export
• indexation • recherche • réplication
• procédures stockées (HyperFileSQL Client/Serveur uniquement)
5.12.1 Gestion automatique des accès concurrentiels et des erreurs
WinDev intègre un module de gestion assistée des erreurs HyperFileSQL. Pour les types d'erreurs suivants, une fenêtre spécifique est automatiquement affichée :
• erreur de doublons • erreur d'intégrité • erreur de mot de passe
• erreur de conflit de modification et d'état lors du conflit de modification • erreur de blocage
• saisie de valeur obligatoire • réindexation en cours
WinDev offre la possibilité de débrancher entièrement le système de gestion automatique des erreurs ou de personnaliser ce système.
Tous les cas d’erreurs peuvent être gérés par programmation avec les fonctions du WLangage.
5.12.2 Gestion de contextes
Un contexte HyperFileSQL contient toutes les informations relatives aux données manipulées : • informations sur la ligne en cours : numéro de la ligne, contenu des colonnes, ... • valeurs des fonctions HTrouve, HEnDehors, ...
• caractéristiques du filtre en cours • caractéristiques de la recherche en cours • caractéristiques du parcours en cours • nom des tables ouvertes
• nom et caractéristiques des requêtes
WinDev permet de créer des contextes HyperFileSQL indépendants :
• pour les fenêtres WinDev : il suffit de cocher "Contexte HyperFileSQL indépendant" dans l’onglet "Détail" de la description d’une fenêtre
• pour les états WinDev : il suffit de cocher "L'exécution de l'état n'affecte pas les parcours (Con- texte HyperFileSQL Indépendant)" dans l’onglet "Données" de la description d’un état
• pour la manipulation de Threads • pour les composants
5.12.3 Gestion des triggers
Un trigger est une procédure appelée automatiquement par HyperFileSQL avant ou après une action de modification d’une ligne de la base de données : ajout, suppression, modification.
HyperFileSQL supporte la gestion des triggers (en mode Classic et en mode Client/Serveur).
5.12.4 Gestion de l’intégrité référentielle
Dans une analyse, les colonnes "Clé" permettent notamment de gérer la cohérence des données (appelée intégrité référentielle) :
• cohérence au niveau d'une table • cohérence entre plusieurs tables
Des fonctions WLangage facilitent la gestion de l’intégrité référentielle.
5.12.5 Gestion des filtres
Un filtre permet de définir en programmation une sélection de lignes correspondant à un ou plusieurs critè- res.
Cette sélection de lignes peut être réalisée sur : • une table HyperFileSQL
• une vue HyperFileSQL • une requête
5.12.6 Gestion des vues
Une vue HyperFileSQL correspond à une "image mémoire" de tout ou partie d'une table HyperFileSQL. Une vue est stockée en mémoire, ce qui la rend insensible aux modifications effectuées sur la table associée. Une fois créée, une vue se manipule comme une table HyperFileSQL.
5.12.7 Gestion des requêtes
Une requête sert à interroger une base de données pour : • visualiser
• insérer • modifier
• supprimer des données
Une requête peut interroger une ou plusieurs tables. Les requêtes peuvent être créées de 2 manières différentes :
• grâce à l’éditeur de requêtes (voir “L’éditeur de requêtes”, page 123) : le code SQL est généré automatiquement, sans avoir à programmer
• en saisissant le code SQL
HyperFileSQL supporte tous les types de requête :
• sous-requête : c’est une requête dont le résultat est utilisé par une autre requête
• requête de requête : c’est une requête réalisée à partir de colonnes provenant d'une autre requête • requête composée : c’est une requête qui permet de combiner plusieurs requêtes de sélection. Chaque requête de sélection doit porter sur des tables ayant le même nombre de colonnes. Cela correspond à l’instruction SQL UNION.
5.12.8 Optimisation automatique des recherches avec les statistiques
Ces statistiques sont utilisées lors de : • la pose d'un filtre
• la création d'une requête • la création d'une vue sur la table
HyperFileSQL analyse la condition de sélection et s'appuie ensuite sur ces statistiques pour déterminer les colonnes les plus discriminantes qui permettent d'optimiser les parcours des tables.
5.12.9 Transactions
Une transaction permet de s'assurer que des mises à jour effectuées sur une ou plusieurs table se sont dérou- lées correctement.
Lorsque l'application est relancée, la cohérence de la base de données peut être rétablie : • soit par programme avec les fonctions du WLangage
• soit par l'outil WDTrans
5.12.10 Utilitaire WDTrans
En cas d'erreur ou de problème (panne de courant pendant les opérations en transaction par exemple), WDTrans est l’outil livré en standard pour rétablir automatiquement l'état des tables juste avant le début de la transaction.
WDTrans permet de :
• annuler les opérations effectuées sur un fichier de transaction • libérer les lignes en transaction
WDTrans est un outil redistribuable.
WDTrans peut être installé avec les applications développées avec WinDev.
5.12.11 Journalisation
Le journal est un fichier particulier dans lequel WinDev mémorise automatiquement toutes les opérations réalisées sur une ou plusieurs table depuis un moment donné.
WinDev propose les options suivantes pour journaler facilement les tables. Le journal contient l'historique de l'utilisation de la table, c'est-à-dire :
• la ligne complète avant manipulation ou modification par l'utilisateur • la ligne complète après manipulation ou modification par l'utilisateur • l'auteur de la manipulation ou de la modification
• la date de la manipulation ou de la modification
• la nature de l'opération effectuée (ajout, modification, suppression, lecture)
♦
WDJournalLe journal peut être manipulé avec l'utilitaire WDJournal.
Il est possible de réaliser les opérations suivantes à partir d'un journal :
• restaurer le contenu d'une table journalée en cas de perte ou de destruction du fichier de données • restaurer le contenu d'une table journalée jusqu'à une certaine date
• retrouver l'auteur, la date et l'heure d'une opération réalisée sur une ligne spécifique
• conserver un historique de l'utilisation d'une table (par exemple pour réaliser des statistiques)
5.12.12 Réplication sur bases HyperFileSQL
La réplication est l'opération permettant de maintenir à jour des bases de données distantes qui évoluent indépendamment : des opérations différentes sont effectuées sur ces bases de données.
WinDev permet de réaliser ces opérations simplement entre des bases de données HyperFileSQL. La réplication peut être intégrée :
• par programmation • avec WDReplic
♦
Réplication par programmationLe WLangage propose plusieurs fonctions de programmation permettant d'intégrer la réplication. Deux modes de réplication peuvent être mis en place par programmation :
• la réplication par réseau
• la réplication par support transportable
♦
WDReplicWDReplic est un module livré avec WinDev qui permet de lancer la réplication (Pour plus de détails, consultez “Les outils (WDMap, WDOptimiseur, etc.)”, page 240) :
• soit directement : la synchronisation est immédiate
• soit en la planifiant : la synchronisation est effectuée à la date et à l'heure indiquées
5.12.13 Réplication universelle
WinDev permet de réaliser les opérations de synchronisation simplement entre des bases de données hétéro- gènes.
La réplication universelle utilise un modèle centralisé : toutes les bases de données se synchronisent avec une base de données maître. La base de données maître répercute ensuite les modifications vers les autres bases de données.
5.12.14 Cryptage des données
HyperFileSQL supporte le cryptage de données. Plusieurs modes de cryptage optimisé sont gérés :
• standard sur 128 bits • RC5 12 boucles sur 128 bits • RC5 16 boucles sur 128 bits Le mode de cryptage peut être défini :
• par programmation grâce aux fonctions du WLangage
• dans l’éditeur d’analyses (pour plus de détails, consultez “L’éditeur d’analyses”, page 27)
5.12.15 Support d’UNICODE
L'Unicode est un système de codage spécifiant un nombre unique pour chaque caractère. Ce codage est réa- lisé sur 16 bits.
L'UNICODE peut prendre en compte tous les systèmes d'écriture de la planète. HyperFileSQL supporte UNICODE pour :
• l’affichage • la recherche • le tri
• l’enregistrement des données
La fonction du WLangage ChangeAlphabet permet de gérer des langues utilisant des alphabets spécifiques.
5.12.16 Procédures stockées (HyperFileSQL Client/Serveur uniquement)
Les procédures stockées permettent de simplifier l'évolution et la maintenance de vos applications en facto- risant le code.
En effet, lorsque la façon d'accéder aux données évolue (suite à un changement de structure de tables par exemple), il suffit de modifier la procédure stockée sur le serveur sans effectuer de modification dans les applications déployées qui utilisent cette procédure.
Une procédure stockée permet également de limiter le nombre d'allers et retours entre le poste client et le serveur, et donc améliore la vitesse des traitements.
Les procédures stockées peuvent utiliser des requêtes SQL ou des requêtes créées avec l'éditeur de requêtes.
La création des procédures stockées et des requêtes utilisées par les procédures stockées est effectuée dans l'éditeur d'analyses.