Tout d'abord concernant la remarque d'evarisnea au sujet du trigger. Si tu as bien défini un trigger qui appelle le GEN_ID avant insertion, alors cette requête:
sql.Add('Insert into TTT (ID,TTT) Values (Gen_ID(G$_ID,1),'''+Edit1.Text+''');');
va certainement doubler l'appel au GEN_ID.
Je verrais plus ceci:
sql.Add('Insert into TTT(TTT) Values (' + QuotedStr(Edit1.Text) + ')');
Ainsi le champ ID sera renseigné par le trigger, et l'appel au GEN_ID sera unique.
Ensuite:
Envoyé par
jojo86
Mais même avec un commit, ça ne fonctionne pas...
Là cela m'étonne, je viens de faire un test et cela fonctionne correctement. As-tu réellement fais un Commit après l'Insert ?
D'un autre côté je n'ai pas fait de tests avec un CommitRetaining (d'ailleurs je ne l'utilise jamais).
Envoyé par
jojo86
... je déconnect ma bdd et après la deconnexion, le message apparait.
Tu as certainement relié entre eux ton IBDatabase et IBTransaction avec leurs propriétés DefaultTransaction et DefaultDatabase, et tu as laissé le DefaultAction du IBTransaction à TACommit.
Donc quand tu te déconnectes de la BDD, la transaction exécute l'action par défaut TACommit et tu reçois l'event.
@+
Partager