• Aucun résultat trouvé

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)

WDJournal

Le 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 programmation

Le 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

WDReplic

WDReplic 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.

5.13 Type de programmation en WLangage pour accéder à Hyper-