DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Gestion des transactions / Fonctions WLangage
  • Cas d'erreurs
  • Manipulations d'enregistrements pendant une transaction
  • Transactions et contexte HFSQL indépendant
  • OLE DB et Connecteurs Natifs
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
Valide la transaction en cours :
  • les modifications effectuées sur le fichier de données depuis le début de la transaction (fonction HTransactionDébut ou fonction HTransaction) sont validées.
  • le fichier de transaction est supprimé (si la transaction est la dernière transaction en cours dans le cas d'une application réseau).
  • les enregistrements bloqués en lecture par la transaction sont débloqués.
AndroidWidget AndroidiPhone/iPadWidget IOSMac Catalyst La gestion des transactions est disponible uniquement pour les bases de données HFSQL Client/Serveur.
Exemple
MaConnexion1 est une Connexion

// Début de la transaction sur les fichiers de données associés Ã  la connexion MaConnexion1
HTransactionDébut(MaConnexion1)

// Code permettant de préparer la commande Ã  ajouter
// ...

QUAND EXCEPTION DANS
// Ajout de la commande
HAjoute(Commande) 
// Validation de l'ajout
HTransactionFin(MaConnexion1)
FAIRE
// Suppression des lignes de commandes
HTransactionAnnule(MaConnexion1)
FIN
// Début de la transaction sur les fichiers de données Commande et LigneCde
HTransactionDébut("C:\Temp\Transaction.trs", "Commande,LigneCde,-Client")

// Code permettant de préparer la commande Ã  ajouter
// ...

QUAND EXCEPTION DANS
// Ajout de la commande
HAjoute(Commande) 
// Validation de l'ajout
HTransactionFin() 
FAIRE
// Suppression des lignes de commandes
HTransactionAnnule() 
FIN
Syntaxe

Valider une transaction en cours sur une connexion Masquer les détails

<Résultat> = HTransactionFin(<Connexion>)
<Résultat> : Booléen
  • Vrai si la transaction est terminée,
  • Faux en cas de problème. La fonction HErreurInfo permet d'obtenir plus de renseignements sur l'erreur.
Attention : Si une transaction globale est commencée, la fonction ne fait rien. Il faut utiliser la syntaxe 2.
<Connexion> : Chaîne de caractères ou variable de type Connexion
Connexion à manipuler. Cette connexion correspond : Si ce paramètre correspond à la constante hAccèsHF7, la transaction est réalisée sur les fichiers de données HFSQL ISAM.

Valider une transaction globale en cours Masquer les détails

<Résultat> = HTransactionFin()
<Résultat> : Booléen
  • Vrai si la transaction est terminée,
  • Faux en cas de problème. La fonction HErreurInfo permet d'obtenir plus de renseignements sur l'erreur.
Remarques

Cas d'erreurs

  • Imbrication de transactions : Il est impossible d'imbriquer les transactions (c'est-à-dire d'appeler la fonction HTransactionDébut ou la fonction HTransaction dans une transaction). Dans ce cas, l'erreur 70031 est générée.
  • Une erreur fatale est affichée dans les cas suivants :
    • Une transaction est débutée sur toutes les connexions alors qu'il existe au moins une connexion en transaction.
    • Une transaction sur une connexion est débutée après avoir commencé une transaction sur toutes les connexions.
    • Une transaction sur toutes les connexions est débutée alors qu'il existe au moins une connexion dont le mode d'isolation n'est pas "Read Uncommitted".

Manipulations d'enregistrements pendant une transaction

Pendant une transaction, il est nécessaire de suivre certaines règles lors de la manipulation des enregistrements. Pour plus de détails, consultez Transactions : Manipuler les enregistrements lors d'une transaction.

Transactions et contexte HFSQL indépendant

Lors de la copie de contexte, si une transaction est en cours sur le premier contexte, le nouveau contexte n'est pas en transaction. Il faut rappeler la fonction HTransactionDébut (ou la fonction HTransaction) pour démarrer une transaction dans le nouveau contexte.
WINDEVWEBDEV - Code ServeurOLE DBConnecteurs Natifs (Accès Natifs)

OLE DB et Connecteurs Natifs

Seules les syntaxes avec connexion sont prises en compte par les Connecteurs Natifs (appelés également Accès Natifs) qui gèrent les transactions. Il est également possible d'utiliser la fonction SQLTransaction.
Composante : wd290hf.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

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