PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Nouveauté WINDEV, WEBDEV, WINDEV Mobile 25 !
  • Blocage des enregistrements
  • 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 WatchCatalystUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Démarre une transaction sur les fichiers de données (HFSQL ou accédés via Connecteur Natif) et crée le fichier des transactions.
Quelles sont les informations enregistrées dans le fichier des transactions ? Chaque fois qu'une fonction WLangage effectue une modification sur un fichier de données ou d'index pendant la transaction, les anciennes valeurs de l'enregistrement et l'opération effectuée sont mémorisées dans le fichier des transactions.
HFSQL Client/Serveur
Versions 19 et supérieures
La transaction peut être démarrée sur une connexion : dans ce cas, seuls les fichiers associés à cette connexion sont mis en transaction. Ce mode est nécessaire pour gérer les niveaux d'isolation des transactions.
Nouveauté 19
La transaction peut être démarrée sur une connexion : dans ce cas, seuls les fichiers associés à cette connexion sont mis en transaction. Ce mode est nécessaire pour gérer les niveaux d'isolation des transactions.
La transaction peut être démarrée sur une connexion : dans ce cas, seuls les fichiers associés à cette connexion sont mis en transaction. Ce mode est nécessaire pour gérer les niveaux d'isolation des transactions.
Versions 17 et supérieures
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Nouveauté 17
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
AndroidWidget AndroidiPhone/iPadWindows Mobile La gestion des transactions est disponible uniquement pour les bases de données HFSQL Client/Serveur.
Versions 18 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Java Cette fonction est désormais disponible pour les applications Java.
Android Cette fonction est désormais disponible pour les applications Android.
Nouveauté 18
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Java Cette fonction est désormais disponible pour les applications Java.
Android Cette fonction est désormais disponible pour les applications Android.
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Java Cette fonction est désormais disponible pour les applications Java.
Android Cette fonction est désormais disponible pour les applications Android.
Remarque : A partir de la version 19, HFSQL est le nouveau nom de HyperFileSQL.
Versions 21 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Versions 23 et supérieures
Remarque : Cette fonction est équivalente à la fonction <Variable Connexion>.Transaction.
Nouveauté 23
Remarque : Cette fonction est équivalente à la fonction <Variable Connexion>.Transaction.
Remarque : Cette fonction est équivalente à la fonction <Variable Connexion>.Transaction.
Exemple
MaConnexion1 est une Connexion
 
// Début de la transaction sur les fichiers de données associés à la connexion MaConnexion1
MaConnexion1.TransactionDébut()
 
// Code permettant de préparer la commande à ajouter
// ...
 
QUAND EXCEPTION DANS
// Ajout de la commande
Commande.Ajoute()
// Validation de l'ajout
MaConnexion1.TransactionFin()
FAIRE
// Suppression des lignes de commandes
MaConnexion1.TransactionAnnule()
FIN
Syntaxe

Débuter une transaction Client/Serveur sur une connexion spécifique Masquer les détails

<Résultat> = <Connexion>.TransactionDébut([<Liste des fichiers de données>])
<Résultat> : Booléen
  • Vrai si la transaction a débuté,
  • Faux en cas de problème. La fonction HErreurInfo permet d'obtenir plus de renseignements sur l'erreur.
<Connexion> : Variable de type Connexion
Nom de la variable de type Connexion décrivant la connexion à manipuler.
<Liste des fichiers de données> : Chaîne de caractères optionnelle (avec guillemets)
Liste de noms logiques d'un ou de plusieurs fichiers de données à prendre en compte dans la transaction ou non (dans ce cas le nom du fichier de données est précédé du signe "-").
Si ce paramètre n'est pas préciséTous les fichiers de données manipulés pendant la transaction seront pris en compte dans la transaction.
Si tous les fichiers de données sont préfixés par le signe "-"
Par exemple : "-Client, -Produit"
Tous les fichiers de données spécifiés dans la liste et manipulés pendant la transaction ne seront pas pris en compte par la transaction.
Tous les fichiers de données non précisés dans la liste seront pris en compte et manipulés durant la transaction.
Si aucun fichier de données de la liste n'est préfixé par le signe "-"
Par exemple : "Client, Produit"
Tous les fichiers de données spécifiés dans la liste et manipulés durant la transaction seront pris en compte dans la transaction.
Tous les fichiers de données non spécifiés et manipulés durant la transaction ne seront pas pris en compte dans la transaction.
Si certains fichiers de données sont préfixés par "-" et d'autres non
Par exemple : "-Client, Produit" (équivalent à "Produit")
Tous les fichiers de données dans la liste préfixés par "-" et manipulés durant la transaction ne seront pas pris en compte dans la transaction.
Tous les fichiers de données dans la liste non préfixés par "-" et manipulés durant la transaction seront pris en compte dans la transaction.
Les fichiers non mentionnés dans la liste seront exclus de la transaction.
OLE DBConnecteurs Natifs (Accès Natifs) Ce paramètre est ignoré. Tous les fichiers de données associés à la connexion sont en transaction sur le serveur natif.

Débuter une transaction Client/Serveur sur une connexion spécifique Masquer les détails

<Résultat> = <Connexion>.TransactionDébut(<Fichier de transaction> , <Liste des fichiers de données>)
<Résultat> : Booléen
  • Vrai si la transaction a débuté,
  • Faux en cas de problème. La fonction HErreurInfo permet d'obtenir plus de renseignements sur l'erreur.
<Connexion> : Variable de type Connexion
Nom de la variable de type Connexion décrivant la connexion à utiliser.
<Fichier de transaction> : Chaîne de caractères (avec guillemets)
Nom complet du fichier de transaction (utilisé pour enregistrer les opérations réalisées en transaction).
Ce paramètre n'est pas pris en compte dans le cas d'une connexion à un Serveur HFSQL.
<Liste des fichiers de données> : Chaîne de caractères (avec guillemets)
Liste de noms logiques d'un ou de plusieurs fichiers de données à prendre en compte dans la transaction ou non (dans ce cas le nom du fichier de données est précédé du signe "-").
Si ce paramètre n'est pas préciséTous les fichiers de données manipulés pendant la transaction seront pris en compte dans la transaction.
Si tous les fichiers de données sont pré-fixés par le signe "-"
Par exemple : "-Client, -Produit"
Tous les fichiers de données spécifiés dans la liste et manipulés pendant la transaction ne seront pas pris en compte par la transaction.
Tous les fichiers de données non précisés dans la liste seront pris en compte et manipulés durant la transaction.
Si aucun fichier de données de la liste n'est pré-fixé par le signe "-"
Par exemple : "Client, Produit"
Tous les fichiers de données spécifiés dans la liste et manipulés durant la transaction seront pris en compte dans la transaction.
Tous les fichiers de données non spécifiés et manipulés durant la transaction ne seront pas pris en compte dans la transaction.
Si certains fichiers de données sont pré-fixés par "-" et d'autres non
Par exemple : "-Client, Produit" (équivalent à "Produit")
Tous les fichiers de données dans la liste pré-fixés par "-" et manipulés durant la transaction ne seront pas pris en compte dans la transaction.
Tous les fichiers de données dans la liste non préfixés par "-" et manipulés durant la transaction seront pris en compte dans la transaction.
Les fichiers de données non mentionnés dans la liste seront exclus de la transaction.
OLE DBConnecteurs Natifs (Accès Natifs) Ce paramètre est ignoré. Tous les fichiers de données associés à la connexion sont en transaction sur le serveur natif.
Remarques

Blocage des enregistrements

Les enregistrements ajoutés, modifiés ou supprimés dans une transaction sont bloqués en écriture.

Cas d'erreurs

  • Imbrication de transactions : Il est impossible d'imbriquer les transactions (c'est-à-dire d'appeler la fonction <Variable Connexion>.TransactionDébut dans une transaction). Dans ce cas, l'erreur 70031 est générée.
  • Versions 19 et supérieures
    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".
    Nouveauté 19
    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".
    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 <Variable Connexion>.TransactionDébut pour démarrer une transaction dans le nouveau contexte.
WINDEVWEBDEV - Code ServeurAjaxCode Utilisateur (MCU)OLE DBConnecteurs Natifs (Accès Natifs)

OLE DB et Connecteurs Natifs

Dans cette version, la fonction <Variable Connexion>.TransactionDébut ne peut pas être utilisée. Pour démarrer une transaction, utilisez la fonction SQLTransaction.Seules les syntaxes avec connexion sont prises en compte par les Accès Natifs qui gèrent les transactions. Il est également possible d'utiliser la fonction SQLTransaction.
Composante : wd250hf.dll
Version minimum requise
  • Version 25
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire