|
|
|
|
|
- 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 Connecteurs Natifs
HTransactionDébut (Fonction) En anglais : HTransactionStart
Non disponible avec ce type de connexion
Démarre une transaction sur les tables (HFSQL ou accédées via Connecteur Natif) et crée le fichier des transactions. Quelles sont les informations enregistrées dans la table des transactions? Chaque fois qu'une fonction WLangage effectue une modification sur une table ou d'index pendant la transaction, les anciennes valeurs de l'enregistrement et l'opération effectuée sont mémorisées dans la table des transactions. Remarque: Cette fonction est équivalente à la fonction HTransaction. MaConnexion1 est une Connexion
HTransactionDébut(MaConnexion1)
QUAND EXCEPTION DANS
HAjoute(Commande)
HTransactionFin(MaConnexion1)
FAIRE
HTransactionAnnule(MaConnexion1)
FIN
HTransactionDébut("C:\Temp\Transaction.trs", "Commande,LigneCde,-Client")
QUAND EXCEPTION DANS
HAjoute(Commande)
HTransactionFin()
FAIRE
HTransactionAnnule()
FIN
Syntaxe
Débuter une transaction Client/Serveur sur une connexion spécifique Masquer les détails
<Résultat> = HTransactionDébut(<Connexion> [, <Liste des tables>])
<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> : Chaîne de caractères ou variable de type Connexion Nom de la connexion à manipuler. Cette connexion correspond: Si ce paramètre correspond à la constante hAccèsHF7, la transaction est réalisée sur les tables HFSQL ISAM. <Liste des tables> : Chaîne de caractères optionnelle Liste de noms logiques d'une ou de plusieurs tables à prendre en compte dans la transaction ou non (dans ce cas le nom de la table est précédé du signe "-"). | | Si ce paramètre n'est pas précisé | Toutes les tables manipulées pendant la transaction seront prises en compte dans la transaction. | Si toutes les tables sont préfixées par le signe "-" Par exemple: "-Client, -Produit" | Toutes les tables spécifiées dans la liste et manipulées pendant la transaction ne seront pas prises en compte par la transaction. Toutes les tables non précisées dans la liste seront prises en compte et manipulées durant la transaction. | Si aucune table de la liste n'est préfixée par le signe "-" Par exemple: "Client, Produit" | Toutes les tables spécifiées dans la liste et manipulées durant la transaction seront prises en compte dans la transaction. Toutes les tables non spécifiées et manipulées durant la transaction ne seront pas prises en compte dans la transaction. | Si certaines tables sont préfixées par "-" et d'autres non Par exemple: "-Client, Produit" (équivalent à "Produit") | Toutes les tables dans la liste préfixées par "-" et manipulées durant la transaction ne seront pas prises en compte dans la transaction. Toutes les tables dans la liste non préfixées par "-" et manipulées durant la transaction seront prises en compte dans la transaction. Les fichiers non mentionnés dans la liste seront exclus de la transaction. |
Débuter une transaction Client/Serveur sur une connexion spécifique ou une transaction ISAM Masquer les détails
<Résultat> = HTransactionDébut(<Connexion> , <Fichier de transaction> , <Liste des tables>)
<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> : Chaîne de caractères ou variable de type Connexion Connexion à utiliser. Cette connexion correspond:Si ce paramètre correspond à une chaîne vide ("") ou à la constante hAccèsHF7, la transaction est réalisée sur les tables HFSQL ISAM. <Fichier de transaction> : Chaîne de caractères <Liste des tables> : Chaîne de caractères Liste de noms logiques d'une ou de plusieurs tables à prendre en compte dans la transaction ou non (dans ce cas le nom de la table est précédé du signe "-"). | | Si ce paramètre n'est pas précisé | Toutes les tables manipulées pendant la transaction seront prises en compte dans la transaction. | Si toutes les tables sont pré-fixées par le signe "-" Par exemple: "-Client, -Produit" | Toutes les tables spécifiées dans la liste et manipulées pendant la transaction ne seront pas prises en compte par la transaction. Toutes les tables non précisées dans la liste seront prises en compte et manipulées durant la transaction. | Si aucune table de la liste n'est pré-fixée par le signe "-" Par exemple: "Client, Produit" | Toutes les tables spécifiées dans la liste et manipulées durant la transaction seront prises en compte dans la transaction. Toutes les tables non spécifiées et manipulées durant la transaction ne seront pas prises en compte dans la transaction. | Si certaines tables sont pré-fixées par "-" et d'autres non Par exemple: "-Client, Produit" (équivalent à "Produit") | Tous les tables dans la liste pré-fixées par "-" et manipulées durant la transaction ne seront pas prises en compte dans la transaction. Toutes les tables dans la liste non préfixées par "-" et manipulées durant la transaction seront prises en compte dans la transaction. Les tables non mentionnées dans la liste seront exclues de la transaction. |
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> = HTransactionDébut([<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.
<Fichier de transaction> : Chaîne de caractères optionnelle <Liste des fichiers> : Chaîne de caractères optionnelle Liste de noms logiques d'une ou de plusieurs tables à prendre en compte dans la transaction ou non (dans ce cas le nom de la table est précédé du signe "-"). | | Si ce paramètre n'est pas précisé | Toutes les tables manipulées pendant la transaction seront prises en compte dans la transaction. | Si toutes les tables sont pré-fixées par le signe "-" Par exemple: "-Client, -Produit" | Toutes les tables spécifiées dans la liste et manipulées pendant la transaction ne seront pas prises en compte par la transaction. Toutes les tables non précisées dans la liste seront prises en compte et manipulées durant la transaction. | Si aucune table de la liste n'est pré-fixée par le signe "-" Par exemple: "Client, Produit" | Toutes les tables spécifiées dans la liste et manipulées durant la transaction seront prises en compte dans la transaction. Toutes les tables non spécifiées et manipulées durant la transaction ne seront pas prises en compte dans la transaction. | Si certaines tables sont pré-fixées par "-" et d'autres non Par exemple: "-Client, Produit" (équivalent à "Produit") | Tous les tables dans la liste pré-fixées par "-" et manipulées durant la transaction ne seront pas prises en compte dans la transaction. Toutes les tables dans la liste non préfixées par "-" et manipulées durant la transaction seront prises en compte dans la transaction. Les tables non mentionnées dans la liste seront exclues de la transaction. |
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 HTransactionDébut 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 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 pour démarrer une transaction dans le nouveau contexte.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|