PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Présentation
  • Qu'est-ce qu'une transaction ?
  • Utiliser les transactions selon ses besoins
  • Principe
  • Principe des transactions sur des fichiers de données HFSQL
  • Cas particuliers
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
Présentation
Ce chapitre aborde les sujets suivants :
Versions 17 et supérieures
iPhone/iPad Cette fonctionnalité est désormais disponible pour les applications iPhone/iPad.
Nouveauté 17
iPhone/iPad Cette fonctionnalité est désormais disponible pour les applications iPhone/iPad.
iPhone/iPad Cette fonctionnalité est désormais disponible pour les applications iPhone/iPad.
AndroidWidget AndroidiPhone/iPadWindows MobileJava La gestion des transactions est disponible uniquement pour les bases de données HFSQL Client/Serveur.
Remarque : A partir de la version 19, HFSQL est le nouveau nom de HyperFileSQL.
Qu'est-ce qu'une transaction ?
Une transaction est un ensemble d'opérations indissociables : soit toutes les opérations de la transaction sont réalisées, soit aucune opération n'est réalisée. La gestion des transactions est le meilleur moyen d'assurer la cohérence d'un ensemble d'écritures indissociables sur des fichiers de données HFSQL.
Par exemple, dans une application bancaire, une opération de virement consiste en un débit pour un compte et un crédit pour un second compte. Il est nécessaire de gérer ces deux opérations dans une seule et même transaction afin d'éviter toute incohérence (en cas de rupture de courant en cours d'opération par exemple).

Utiliser les transactions selon ses besoins

Selon votre situation, voici quelques conseils pour optimiser la gestion des transactions dans vos applications ou sites :
  • Réaliser des transactions dans des applications installées sur des postes fiables (onduleur, une seule application en cours, ...) : transaction disque
    Dans ce cas, les transactions sont utilisées uniquement dans le but de pouvoir annuler simplement une suite d'opérations. Il est possible d'afficher des fenêtres au milieu d'une transaction, de réaliser différents traitements relativement longs, ...
    Chaque opération réalisée pendant la transaction est enregistrée dans un fichier de transaction. L'enregistrement manipulé est bloqué en écriture jusqu'à la validation ou l'annulation de la transaction.
  • Réaliser des écritures fiables dans des fichiers de données (domaine bancaire, comptable, ...).
    Les transactions permettent d'assurer la sécurité d'un ensemble d'opérations. Dans ce cas, il est nécessaire de regrouper toutes les opérations d'écriture dans votre code afin de les exécuter dans une transaction. Le code exécuté pendant la transaction ne doit pas afficher de fenêtres, réaliser de parcours de fichiers de données, ... Ce code doit uniquement comprendre les opérations de modification des fichiers de données.
    Chaque opération réalisée pendant la transaction est enregistrée dans un fichier de transaction. L'enregistrement manipulé est bloqué en écriture jusqu'à la validation ou l'annulation de la transaction.
Principe

Principe des transactions sur des fichiers de données HFSQL

Chaque opération d'écriture effectuée lors d'une transaction est mémorisée dans un fichier des transactions. A tout moment, il est possible d'annuler la transaction : toutes les opérations effectuées depuis le début de la transaction seront annulées.
Lorsque les opérations d'écriture incluses dans la transaction sont terminées, le programme peut valider les opérations de la transaction.
Remarques :
  • Les transactions suivent la norme SQL 92 "READ UNCOMMITED". Pour assurer la bonne cohérence de vos données, il est nécessaire de tenir compte de ce fonctionnement.
  • Les transactions ne sont pas disponibles sur des fichiers de données Hyper File 5.5.
Remarques :
  • HFSQL Le mode d'isolation des transactions est le mode "READ UNCOMMITED".
  • Versions 19 et supérieures
    HFSQL Client/Serveur Le mode d'isolation des transactions est défini avec la fonction HTransactionIsolation. Le mode d'isolation par défaut est le mode "READ UNCOMMITED".
    Nouveauté 19
    HFSQL Client/Serveur Le mode d'isolation des transactions est défini avec la fonction HTransactionIsolation. Le mode d'isolation par défaut est le mode "READ UNCOMMITED".
    HFSQL Client/Serveur Le mode d'isolation des transactions est défini avec la fonction HTransactionIsolation. Le mode d'isolation par défaut est le mode "READ UNCOMMITED".
  • Hyper File 5.5 Les transactions ne sont pas disponibles sur des fichiers de données Hyper File 5.5.

Cas particuliers

  • Erreur du programme, la transaction est automatiquement abandonnée.
  • Appel de la fonction FinProgramme, la transaction est automatiquement abandonnée.
  • Annulation d'un test depuis l'éditeur, la transaction est automatiquement abandonnée.
  • Panne de courant ou arrêt brusque de l'application (arrêt de l'application par le gestionnaire de tâches par exemple) :
    Lorsque l'application est relancée, la cohérence de la base de données peut être rétablie :
HFSQL Client/Serveur Cas particuliers spécifiques à HFSQL Client/Serveur :
  • Si le Client est perdu, annulation de la transaction.
  • Le redémarrage du serveur annule les transactions en cours. Attention : la transaction n'est pas annulée si la transaction porte sur un fichier de données avec mot de passe sécurisé. La transaction sera annulée à la prochaine ouverture du fichier de données.
Pour plus de détails sur les différents modes de rétablissement de la cohérence des données, consultez Gestion des cas particuliers.
Liste des exemples associés :
WD Transaction Exemples didactiques (WINDEV) : WD Transaction
[ + ] Ce programme réalisé avec WINDEV est basé sur une analyse simplifiée du type COMMANDE, LIGNECOMMANDE, STOCK. Il illustre le fonctionnement des transactions lors du passage d'une commande.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire