|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Membre habitué
![]() Inscription : août 2004 Messages : 541 ![]() |
Bonjour,
C'est encore moi, je voudrais avoir dans la mesure du possible des informations complémentaires sur les transactions (startTransaction, commit, rollback etc...) en fait je début avec Interbase/Firebird (moins d'un mois) En effet dans mon programme, je créé dynamiquement le composant Tibtransaction comme indiquer ci-dessous : Je créer ce composant ou cette connexion lorsque que je démarre l'application. Citation:
Citation:
Citation:
Citation:
Et c'est là que j'ai le problème, lorsqu'un autre exe lit la base de données.
Pouvez-vous m'aider à y voir plus clair ? je pense que que cela à pour origine le mode de connexion ou l'appel à la transaction. Pensez vous que je doive faire comme suit: Citation:
Citation:
Citation:
Citation:
Cordialement QAYS. |
||||||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
certes, mais tu ne nous dis pas quel type d'isolement de transaction tu utilises,
ni dans quelle type de transaction tu es pour lire tes données, je t'invite à lire cet article : http://www.firebird-fr.eu.org/articl...?id_article=39 et ceci : http://interbase.developpez.com/faq/?page=transaction pour mieux comprendre les transactions et leurs différents niveau d'isolement, c'est à dire comment déterminer ce qu'une transaction peux voir ou pas du travail des autres transactions
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|
00
|
|
|
#3 | ||||
|
Membre habitué
![]() Inscription : août 2004 Messages : 541 ![]() |
merci de cette reponse.
en fait je ne sais pas comment coder le mode d'isolement est ce ainsi ?: Citation:
Citation:
je créé dynamiquement le QUERY c'est a dire EN LECTURE ---------------- Citation:
---------------- Citation:
Pour info j'ai essyer plusieurs trucs et aucun résultat satisfaisant Dans l'attente d'une reponse Cordialement QAYS |
||||
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
pour coder ton isolement voir la doc de ton outil de dev
si non effectivement, il faut une transaction par ensemble d'opérations dont on veut assurer la cohérence, pas une seule transaction par appli tu peux n'avoir qu'un seul composant, ce n'est pas un probleme mais tu démarres et ferme ta transaction pour chaque ensemble d'opérations cohérentes
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : août 2004 Messages : 541 ![]() |
bonjour,
c'est l'un d'es trucs que j'ai essayé et cela marche bien pour le mise a jour, le problème c'est l exe-2 qui lui à (comme je ai dit dans mon message précedent) à "pris une photo" de la base lors de sa connexion et donc même si l'exe-1 a fait le commit et que la maj en ok en bdd (si je lance l'exe-3 ,de dernier voit la mise a jour) l exe-2 lui ne voit pas cette donne je vais essayer autre chose ce matin pour info j'utilise delphi 7 pro. |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
ce que tu ne comprend pas c'est que c'est vrai pour tous les dialogues avec le serveur, y compris les simples SELECT
si tu associes tes SELECT avec une seule transaction à l'ouverture de l'appli, il n'y a que si tu choisis READCOMMITED que tu verras les actions commitées par les autres transaction (ça c'est le comportement (mauvais en général) du BDE) car cela laisse ouverte une transaction pendant tout le temps que ton exe est lancé
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : août 2004 Messages : 541 ![]() |
merci de ton aide, je te remerci bcp de ton aide, je viens de faire le test et cela semble être ok, en effet en creant une nouvelle transaction je retrouve bien mes petits
toutefois je continue les tests. envore une fois merci |
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() Inscription : août 2004 Messages : 541 ![]() |
Bingo, tout est ok,
en fait je creé dynamiquement une transaction à chaque questionnement ou mas de la bdd et une fois le travail effectué (init ecran, calcul etc...) je détruis le transaction. avec ce mode opératoire je n'ai aucun problème, je retrouve tous mes petits Par contre maitenant je vais faire un test de monté en charge et voir combien de connextion sont possibles en simultanné encore une fois merci Cordialement KQAYS |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com