|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Inscrit
Inscription : mai 2004 Messages : 759 ![]() |
bonjour à tous j'ai un problème qui me pourri le vie depuis plusieurs jours. en effet c'est un pb que j'ai exposé au forum delphi et les bases de données sur conseil de barbibulle mais je n'ai obtenu de reponse. j'ai mon application que j'ai écrite sous delphi 6. en utilisant les ibx je me connect à ma base de données sous interbase 6 ver open source. dans mon application voici les particularités: j'ai un IBDatabase que je connect à ma base données un IBTransaction un IBquery un IBUpdateSQL un datasource et à partir d'un DBgrid et DBnavigator je visualise,inserre, modifie, valide les données. pour me rendre compte que les données inserreés sont vraiment inscrite dans la base. je lance IBexpert et la à ma grande surprise rein! je fais une insertion à parir de IBexpert et la aprés rafraichissement au niveau de ma base je vois la donnée inserrée a partir de IBexpert. En fait je sais plus s'il me faut écrire un code spécifique pour commiter les insertions ou autres MAJ je suis debousoler je vous demande de m'aider merci à tous |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Sur l'évènement OnAfterPost du IBQuery faites
ou si vous voulez fermer la transaction. |
|
|
00
|
|
|
#3 |
|
Inscrit
Inscription : mai 2004 Messages : 759 ![]() |
j'essai et je vous fait signe
merci |
|
|
00
|
|
|
#4 |
|
Inscrit
Inscription : mai 2004 Messages : 759 ![]() |
bonjour Barbibulle
j'ai essaiyer ça marcher juste pour une insertion et après plus rien, le meme pb survient. en faite j'ai oublier de la dire dans ma table l'Id de ma table (clé primaire) est autoincrémenté. c'est peut etre a cause de cela. bon pour ma part je continu de creuser merci |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Il y a un message d'erreur ?
|
|
|
00
|
|
|
#6 |
|
Inscrit
Inscription : mai 2004 Messages : 759 ![]() |
non il n'ya pas de message d'erreurs et c'est bien ce qui me géne.
lorsque je fais une insertion au niveau de mon application pas de pb. mais il suffit que je quitte mon aplli et lorsque je la relance elle n'arrive meme pas avoir le dernière valeur entrée. alors que du coté de IBexpert ca marche sans pb. j'ai comme l'impression que IBexpert a une certaine exclusivité sur la table. car mon apllication ce met a jour à partir des données entrées du coté de IB expert. en faite c'est juste une table de 3 colones IDnuméro, nom , prénom merci. |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Je ne comprend pas bien votre probleme. A mon a vous oubliez de faire quelque chose comme un commit par exemple.
Dites comment vous avez configuré votre transaction dans votre application ? (Read commited ?) Et décrivez pas à pas ce que vous faites dans IBExpert et dans votre application, jusqu'à l'apparition de ce que vous pensez être un problème... |
|
|
00
|
|
|
#8 |
|
Inscrit
Inscription : mai 2004 Messages : 759 ![]() |
dans mon application les IBX ont été configurés en read commited.
pour la description pas à pas voila ce que je fais: dans IBexpert j'ouvre ma table en mode insertion - j'inserre une ligne: 20 dino1 devalender je valide et je committe. je rabat la fenetre de IBexpert et j'agrandit celle de mon application là - j'inserre une autre ligne: 20 dino devalender je valide. a ma grande surprise il n'ya pas de message d'érreur(hors numéro est PK). ce qui veut dire que la donnée n'a pas atteint la donnée! je quitte mon apllication et je relance, apres un refresh dans la barre du DBnavigator j'apercois dans ma table -20 dino devalender donc la donnée venant de IBexpert ! je ne comprend plus rien merci |
|
|
00
|
|
|
#9 |
|
Inscrit
Inscription : mai 2004 Messages : 759 ![]() |
en attendant d'y voir plus claire et si vous n'avez pas de solution je vais essaiyer de tout reprendre
merci |
|
|
00
|
|
|
#10 | ||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
C'est pas très clair vos explications....
Structure de la table : Code :
Insertion d'une nouvelle donnée : Validation et COMMIT j'iconise IBExpert je lance mon application, je visualise bien la ligne insérée. J'iconise mon application (je ne la ferme pas) je réouvre IBExpert j'insère une autre ligne je valide et COMMIT j'iconise IBExpert je réouvre mon application je ne vois pas la ligne 2, mais c'est normale car je n'ai pas redemandé la lecture de la table. Je fais donc un IBDataSet.Close; (remplissage éventuel des paramètres... puis ) suivit de IBDataSet.Open; Cette fois je vois bien les deux lignes. J'insère une nouvelle ligne dans mon application : je la valide (IBDataSet.Post;) message d'erreur PK primary key... je modifie le 2 en 3, je valide (IBDataSet.Post;) cette fois il n'y a pas d'erreur. J'iconise. J'ouvre IBExpert, je valide la transaction (pour rafraichir les données) je ne vois que les deux lignes (c'est normal j'ai pas commité dans l'application...) Je reviens dans l'application, je commit (IBDataSet.transaction.Commit;) J'iconise,je reviens dans IBExpert, je valide la transaction pour rafraichir et cette fois je vois bien les 3 lignes... Voilà une description pas à pas avec les infos importantes (Insert, post, commit) |
||
|
|
00
|
|
|
#11 |
|
Inscrit
Inscription : mai 2004 Messages : 759 ![]() |
bonjour
apparament c'est bien expliqué, mais ce que comprend pas ou ce que je ne vois (ne sais pas faire), c'est l'endroit exacte ou il faut aposer les differents codes dont tu fait allusion dans ton explication: exemple: pour le IBDataSet.Close; (remplissage éventuel des paramètres... puis ) suivit de IBDataSet.Open; en effet c'est bien le pb que j'avais merci |
|
|
00
|
|
|
#12 |
|
Inscrit
Inscription : mai 2004 Messages : 759 ![]() |
merci beaucoup barbibulle ça marche
merci encore |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com