|
|
|
|
|
- Localisation et accès aux fichiers de données
- Détection d'une erreur
- Conseil : Rétablir la cohérence de la base de données
- Cas d'erreurs
- Transactions et contexte HFSQL indépendant
- OLE DB et Connecteurs Natifs
<Variable Connexion>.TransactionAnnule (Fonction) En anglais : <Connection variable>.TransactionCancel
Non disponible avec ce type de connexion
Si une transaction est en cours, annule toutes les opérations effectuées sur les fichiers de données en transactions depuis le début de la transaction. Dans ce cas, la transaction est annulée sans interrompre l'exécution du programme. Si aucune transaction est en cours, rétablit la cohérence de la base de données et annule la transaction qui a échoué (cas d'une coupure de courant par exemple). Remarque : Une transaction qui a échoué peut être annulée par n'importe quel programme. Si le fichier de transaction n'est pas partagé, il est automatiquement détruit. Les enregistrements bloqués par les écritures effectuées durant la transaction sont débloqués. Remarque : La fonction <Source>.TransactionLibère transforme tous les enregistrements "en transaction" en enregistrements "normaux" si ces enregistrements n'appartiennent pas à une transaction actuellement en cours.
MaConnexion est une Connexion  // Début de la transaction sur les fichiers de données associés à la connexion MaConnexion MaConnexion.TransactionDébut() Ajout_Commande() QUAND EXCEPTION DANS // Ajout de la commande Commande.Ajoute() // Validation de l'ajout MaConnexion.TransactionFin() FAIRE // Suppression des lignes de commandes MaConnexion.TransactionAnnule() FIN Syntaxe
Annuler une transaction en cours ou une transaction interrompue sur une connexion Client/Serveur Masquer les détails
<Résultat> = <Connexion>.TransactionAnnule()
<Résultat> : Booléen - Vrai la transaction a été annulée,
- Faux en cas de problème. La fonction HErreurInfo permet d'obtenir plus de renseignements sur l'erreur.
Attention : - S'il y a une transaction en cours sur la connexion, elle est annulée.
- S'il n'y a pas de transactions en cours, les transactions interrompues sont annulées pour la connexion spécifiée.
<Connexion> : Variable de type Connexion Nom de la variable de type Connexion décrivant la connexion à manipuler.
Annuler une transaction interrompue sur une base de données Client/Serveur (à utiliser si aucune transaction n'est en cours) Masquer les détails
<Résultat> = <Connexion>.TransactionAnnule(<Base de données>)
<Résultat> : Booléen - Vrai la transaction a été annulée,
- Faux en cas de problème. La fonction HErreurInfo permet d'obtenir plus de renseignements sur l'erreur.
Attention : - Seules les transactions interrompues sur la base de données spécifiée sont annulées.
- Les transactions en cours ne sont pas annulées.
<Connexion> : Variable de type Connexion Nom de la variable de type Connexion décrivant la connexion à manipuler. <Base de données> : Chaîne de caractères Nom de la base de données concernée. Si ce paramètre correspond à une chaîne vide (""), une erreur est affichée.
Annuler une transaction spécifique, liée à une connexion Masquer les détails
<Résultat> = <Connexion>.TransactionAnnule(<Transaction à  annuler>)
<Résultat> : Booléen - Vrai la transaction a été annulée,
- Faux en cas de problème. La fonction HErreurInfo permet d'obtenir plus de renseignements sur l'erreur.
Attention : Seules les transactions interrompues sur la base de données spécifiée sont annulées.
<Connexion> : Variable de type Connexion Nom de la variable de type Connexion décrivant la connexion à manipuler. <Transaction à annuler> : Entier Identifiant de la transaction à annuler pour la connexion spécifiée. Cet identifiant peut être connu grâce à la fonction <Variable Connexion>.TransactionListe. Remarques Localisation et accès aux fichiers de données Avant d'appeler la fonction <Variable Connexion>.TransactionAnnule, les fichiers de données manipulés par la transaction annulée doivent être : Détection d'une erreur Lorsqu'une erreur est détectée par le programme (gestion des erreurs avec QUAND EXCEPTION par exemple), la fonction <Variable Connexion>.TransactionAnnule permet de : Conseil : Rétablir la cohérence de la base de données Si une panne (coupure de courant, re-démarrage du poste, ...) survient pendant une transaction, les fichiers de données risquent d'être incohérents : la transaction n'a été ni validée, ni abandonnée. Le fichier de transaction est toujours présent sur le poste. Pour rétablir la cohérence de la base de données, il est conseillé de proposer dans votre application : Remarque : cette opération peut être relativement longue (selon le nombre d'opérations effectuées en transaction). Cas d'erreurs - Imbrication de transactions : Il est impossible d'imbriquer les transactions (c'est-à -dire d'appeler la fonction <Variable Connexion>.TransactionDébut ou la fonction <Variable Connexion>.Transaction 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".
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 <Variable Connexion>.TransactionDébut (ou la fonction <Variable Connexion>.Transaction) pour démarrer une transaction dans le nouveau contexte.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|