PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

Nouveauté WINDEV, WEBDEV, WINDEV Mobile 23 !
  • Application réseau (base de données ISAM)
  • Blocage des enregistrements
  • Cas d'erreurs
  • Fichiers temporaires créés lors de la transaction (base de données ISAM)
  • Manipulations d'enregistrements pendant une transaction
  • Transactions et contexte HFSQL indépendant
  • OLE DB et Accès Natifs
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
Démarre une transaction sur les fichiers de données (HFSQL ou accédés via Accès 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 Cette fonction propose deux modes de fonctionnement 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.
  • La transaction peut être démarrée sur toutes les connexions HFSQL existantes ou à venir. Dans ce cas, la fonction HTransaction démarre à la fois une transaction HFSQL Classic (ISAM) et une transaction HFSQL Client/Serveur.
AndroidWidget AndroidiPhone/iPadWindows Mobile La gestion des transactions est disponible uniquement pour les bases de données HFSQL Client/Serveur.
Remarque : Cette fonction est équivalente à la fonction HTransactionDébut.
Exemple
Versions 19 et supérieures
// Début de la transaction sur les fichiers associés à la connexion MaConnexion1
HTransaction(MaConnexion1)
Ajout_Commande()
QUAND EXCEPTION DANS
// Ajout de la commande
HAjoute(Commande)
// Validation de l'ajout
HTransactionFin(MaConnexion1)
FAIRE
// Suppression des lignes de commandes
HTransactionAnnule(MaConnexion1)
FIN
Nouveauté 19
// Début de la transaction sur les fichiers associés à la connexion MaConnexion1
HTransaction(MaConnexion1)
Ajout_Commande()
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 associés à la connexion MaConnexion1
HTransaction(MaConnexion1)
Ajout_Commande()
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 Commande et LigneCde
HTransaction("C:\Temp\Transaction.trs", "Commande,LigneCde,-Client")
Ajout_Commande()
QUAND EXCEPTION DANS
// Ajout de la commande
HAjoute(Commande)
// Validation de l'ajout
HTransactionFin()
FAIRE
// Suppression des lignes de commandes
HTransactionAnnule()
FIN
Syntaxe

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

<Résultat> = HTransaction(<Nom de la connexion> [, <Liste des fichiers>])
<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.
<Nom de la connexion> : Chaîne de caractères (avec ou sans guillemets)
  • Nom de la connexion à manipuler. Cette connexion a été définie :
  • Constante hAccèsHF7 : La transaction est réalisée sur les fichiers HFSQL ISAM.
<Liste des fichiers> : Chaîne de caractères optionnelle (avec guillemets)
Liste de noms logiques d'un ou de plusieurs fichier à prendre en compte dans la transaction ou non (dans ce cas le nom du fichier est précédé du signe "-").
Si ce paramètre n'est pas préciséTous les fichiers manipulés pendant la transaction seront pris en compte dans la transaction.
Si tous les fichiers sont pré-fixés par le signe "-"
Par exemple : "-Client, -Produit"
Tous les fichiers spécifiés dans la liste et manipulés pendant la transaction ne seront pas pris en compte par la transaction.
Tous les fichiers non précisés dans la liste seront pris en compte et manipulés durant la transaction.
Si aucun fichier de la liste n'est pré-fixé par le signe "-"
Par exemple : "Client, Produit"
Tous les fichiers spécifiés dans la liste et manipulés durant la transaction seront pris en compte dans la transaction.
Tous les fichiers non spécifiés et manipulés durant la transaction ne seront pas pris en compte dans la transaction.
Si certains fichiers sont pré-fixés par "-" et d'autres non
Par exemple : "-Client, Produit" (équivalent à "Produit")
Tous les fichiers 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 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 DBAccè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 ou une transaction ISAM Masquer les détails

<Résultat> = HTransaction(<Nom de la connexion> , <Nom du fichier de transaction> , <Liste des fichiers>)
<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.
<Nom de la connexion> : Chaîne de caractères (avec ou sans guillemets)
  • Nom de la connexion à utiliser. Cette connexion a été définie :
  • Chaîne vide ("") ou constante hAccèsHF7 : La transaction est réalisée sur les fichiers HFSQL ISAM.
<Nom du fichier de transaction> : Chaîne de caractères (avec guillemets)
HFSQL Nom complet du fichier de transaction (utilisé pour enregistrer les opérations réalisées en transaction). Ce fichier sera automatiquement détruit lors de l'utilisation des fonctions HTransactionFin ou HTransactionAnnule.
Si ce nom correspond à une chaîne vide, le fichier de transaction sera créé dans le répertoire des fichiers de données de l'application et aura pour nom : <Nom Projet>_$TRS_OPERATION.TRS.
HFSQL Client/ServeurOLE DBAccès Natifs Ce paramètre n'est pas pris en compte. Ce paramètre est pris en compte uniquement pour les transactions HFSQL Classic (transactions ISAM).
<Liste des fichiers> : Chaîne de caractères (avec guillemets)
Liste de noms logiques d'un ou de plusieurs fichier à prendre en compte dans la transaction ou non (dans ce cas le nom du fichier est précédé du signe "-").
Si ce paramètre n'est pas préciséTous les fichiers manipulés pendant la transaction seront pris en compte dans la transaction.
Si tous les fichiers sont pré-fixés par le signe "-"
Par exemple : "-Client, -Produit"
Tous les fichiers spécifiés dans la liste et manipulés pendant la transaction ne seront pas pris en compte par la transaction.
Tous les fichiers non précisés dans la liste seront pris en compte et manipulés durant la transaction.
Si aucun fichier de la liste n'est pré-fixé par le signe "-"
Par exemple : "Client, Produit"
Tous les fichiers spécifiés dans la liste et manipulés durant la transaction seront pris en compte dans la transaction.
Tous les fichiers non spécifiés et manipulés durant la transaction ne seront pas pris en compte dans la transaction.
Si certains fichiers sont pré-fixés par "-" et d'autres non
Par exemple : "-Client, Produit" (équivalent à "Produit")
Tous les fichiers 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 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 DBAccè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 ISAM et/ou Client/Serveur sur toutes les connexions HFSQL Client/Serveur (existantes ou à venir) Masquer les détails

<Résultat> = HTransaction([<Nom du fichier de transaction> [, <Liste des fichiers>]])
<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.
<Nom du fichier de transaction> : Chaîne de caractères optionnelle (avec guillemets)
HFSQL Nom complet du fichier de transaction (utilisé pour enregistrer les opérations réalisées en transaction). Ce fichier sera automatiquement détruit lors de l'utilisation des fonctions HTransactionFin ou HTransactionAnnule.
Si ce nom n'est pas spécifié ou correspond à une chaîne vide, le fichier de transaction sera créé dans le répertoire des fichiers de données de l'application et aura pour nom : <Nom Projet>_$TRS_OPERATION.TRS.
HFSQL Client/ServeurOLE DBAccès Natifs Ce paramètre n'est pas pris en compte. Ce paramètre est pris en compte uniquement pour les transactions HFSQL Classic (transactions ISAM).
<Liste des fichiers> : Chaîne de caractères optionnelle (avec guillemets)
Liste de noms logiques d'un ou de plusieurs fichier à prendre en compte dans la transaction ou non (dans ce cas le nom du fichier est précédé du signe "-").
Si ce paramètre n'est pas préciséTous les fichiers manipulés pendant la transaction seront pris en compte dans la transaction.
Si tous les fichiers sont pré-fixés par le signe "-"
Par exemple : "-Client, -Produit"
Tous les fichiers spécifiés dans la liste et manipulés pendant la transaction ne seront pas pris en compte par la transaction.
Tous les fichiers non précisés dans la liste seront pris en compte et manipulés durant la transaction.
Si aucun fichier de la liste n'est pré-fixé par le signe "-"
Par exemple : "Client, Produit"
Tous les fichiers spécifiés dans la liste et manipulés durant la transaction seront pris en compte dans la transaction.
Tous les fichiers non spécifiés et manipulés durant la transaction ne seront pas pris en compte dans la transaction.
Si certains fichiers sont pré-fixés par "-" et d'autres non
Par exemple : "-Client, Produit" (équivalent à "Produit")
Tous les fichiers 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 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
Remarques
WINDEVWEBDEV - Code ServeurEtats et RequêtesAjaxCode Utilisateur (MCU)HFSQL

Application réseau (base de données ISAM)

En réseau, le fichier de transactions peut être créé aussi bien sur un disque local que sur une unité réseau.
  • Si le fichier de transactions est installé sur un poste local, il ne contiendra que les informations de transactions réalisées par le poste en cours. Dans ce cas, le fichier de transactions est supprimé lors de la terminaison de la transaction.
  • Si le fichier de transactions est installé sur une unité réseau (installation conseillée), le fichier des transactions contiendra les informations de transactions de plusieurs postes. Chaque poste est identifié par un numéro unique. Dans ce cas, le fichier de transactions est supprimé lors de la terminaison de la dernière transaction.

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 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".
WINDEVWEBDEV - Code ServeurEtats et RequêtesAjaxCode Utilisateur (MCU)HFSQL

Fichiers temporaires créés lors de la transaction (base de données ISAM)

Lors de la transaction, des fichiers temporaires (extension ".TRX") sont créés dans le répertoire contenant les fichiers de données (fichiers ".FIC"). Ces fichiers temporaires ne doivent pas être supprimés. Dans le cas contraire, les données manipulées par la transaction pourraient être endommagées.
Remarque : Ces fichiers temporaires sont automatiquement détruits à la fin de la transaction.

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 HTransaction pour démarrer une transaction dans le nouveau contexte.
WINDEVWEBDEV - Code ServeurAjaxCode Utilisateur (MCU)OLE DBAccès Natifs

OLE DB et Accès Natifs

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.
Composantes
WINDEVWEBDEV - Code ServeurEtats et Requêtes wd230.dll
Windows Mobile wp230.dll
Java wd230java.jar
Linux wd230.so
Android wd230android.jar
Version minimum requise
  • Version 23
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire