Transactions
Utilisateur WDF
Inscrit:
19/05/2004 12:10
De LYON
Post(s): 59
Bonjour,

Je n'ai encore jamais utilisé les transactions en Windev, mais je pense que je devrais le faire dans le cas suivant de génération automatique de facture, c.a.d. :
1. création d'un enregistrement dans le fichier FACTURE, avec attribution d'un numéro
2. création d'un ou plusieurs enregistrements dans le fichier FACTURE_LIGNE à partir de lignes sélectionnées dans un fichier COUTS
3. modification d'enregistrements dans le fichier COUTS pour annoter ceux qui sont facturés

Après avoir étudié l'aide, je me pose cependant des questions relatives à l'emplacement des commandes "HTransactionDébut" et "HTransactionFin".

Citation :
Aucune interface utilisateur (fenêtre, état, ...) ne doit être utilisée entre le début et la fin d'une transaction.
Toutes les opérations de transaction doivent être réalisées dans un même traitement : la fonction HTransactionDébut()et la fonction HTransactionAnnule() doivent être appelées depuis le même traitement : code de clic d'un bouton, ....

J'ai programmé l'enchainement de toutes ces opérations dans plusieurs procédures d'une même fenêtre (qui s'appellent les unes les autres) et je fais également appel à une deuxième fenêtre (SANS contexte indépendant) pour faire valider plusieurs montants à l'utilisateur.

Ce que je souhaite, c'est ne rien valider du tout si l'une ou l'autre de ces procédures relativement complexes devait planter.
Comment faut-il comprendre dans le texte de l'aide "appelées […ou…] réalisées […par ou depuis…] le même traitement" ?
A partir du moment où l'utilisateur clique sur "OUI" à une question pour valider et que toutes les autres procédures appelées s'enchaînent, est-ce "un même traitement" ?

Quant à ma deuxième fenêtre dans laquelle je veux faire confirmer plusieurs valeurs à l'utilisateur, puis-je garder les valeurs saisies dans cette fenêtre (valeurs qui appartiendront à mon fichier LIGNES_FACTURE), si je referme cette fenêtre alors qu'elles ne sont pas encore enregistrées, et que je démarre la transaction seulement après, dans le style :

bOK est un booléen
HTransactionDebut()
// ... traitement 
HAjoute(FACTURE)
// ... traitement + test sur HAjoute => bOK = vrai ou faux
HAjoute(FACTURE_LIGNES)
// ... traitement + test sur HAjoute => bOK = vrai ou faux
Hmodifie(COUTS)
// ... traitement + test sur Hmodifie => bOK = vrai ou faux
Si bOK = vrai
HtransactionFin()
SINON 
HtransactionAnnule()
FIN

Si quelqu'un peut me faire bénéficier de son expérience, je le remercie vivement d'avance de ses conseils éclairés.


Contribution le : 08/02/2005 17:09
Créer un fichier PDF de la contribution Imprimer


Re: Transactions
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour Juliane,

Les Transactions en règle générale doivent être des plus rapides possibles. Il est donc nécessaire de préparer les données avant de lancer la transaction

Durant l'exécution d'une transaction, les données ne peuvent pas être utilisées par une seconde transaction jusqu'à ce que la première soit terminée c'est ce point qui demande à ce que le traitement soit le plus rapide possible.


Contribution le : 08/02/2005 23:09
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Transactions
Pour apporter un peu plus d'info sur les transactions ci-joint 2 liens
N'utilisant pas HF, je ne sais pas comment HF gère les transactions, mais il est clair qu'il vaut mieux, bien préparer les données avant...




Transactions : http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1

http://www.linuxgazette.com/issue68/mitchell.html

Contribution le : 08/02/2005 23:36
Créer un fichier PDF de la contribution Imprimer


Re: Transactions
Utilisateur WDF
Inscrit:
19/05/2004 12:10
De LYON
Post(s): 59
Bonsoir Charly et Daniel et merci de vos réponse.

En fait, j'ai commencé par déplacer mes traitements de 2ème fenêtre, pour l'ouvrir et la fermer avant le début de la transaction et cela a l'air de bien se passer.

La question qui m'inquiétait sur l'enchainement des procédures semble également ne pas poser de problème.

Et je suis presque au bout de mes peines... Finalement, cela n'a pas l'air si compliqué que je le craignais.

Mais je regarderai ces liens demain, l'esprit plus clair.

Merci encore...
et bonne nuit...


Contribution le : 08/02/2005 23:42
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2