|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : avril 2006 Messages : 6 ![]() |
bonjour, je suis nouveau en programmation, voila mon probleme et que j'ai une base de données interbase qui est composée de cinq tables, voila lorsque j'ajoute des enregistrements, je suis oblige de fermer le programme et de le relancer pour pouvoir imprimer les derniers enregistrements,
car si j'imprime directement, les enregistrements ajoutes n'apparaissent pas. merci pour votre aide. Rq: j'utilise: ibdatabase, ibtransaction, ibtable. j déjà utilise ibtable1.refresh: ca ne marche pas; j utilise ibdatabase.connected:=false puis ibdatabase.connected:=true: ca ne marche pas j utilise ibtable1.open..........ibtable1.refresh ibtable1.close : non plus je ne comprend plus rien voici mon code : Code :
Code :
|
||||
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : octobre 2004 Messages : 146 ![]() |
Bonjour
A mon avis, c' est un problème de transaction car quand tu fermes ta base la transaction est validée (Commit en anglais) . Essaie de changer la propriètèe par défaut du composant transaction DéfautAction à TACommitRetaining . Mirmillon |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : avril 2006 Messages : 6 ![]() |
merci pour la reponse, j'ai deja essayé cette solution, ça ne donne rien.
une autre remarque, j'ai mis un dbgrid et la je vois mes enregistrement, ils sont bien la? je ne comprends rien. si quelqu'un a une autre idee, elle est la bien venue. merci. |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Inscription : mars 2002 Messages : 172 ![]() |
Je n'ai rien vérifié mais j'ai rencontré ce pb...
Regarde si IBtable que tu utilises, contient un événement BeforePost dans lequel tu lancerais ibtable.applyUdapte; et dans AfterUpdate, la fermeture et l'ouverture de la table (qui affiche ce qui est réellement dans la base et non dans la cache). Lucien |
|
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() Inscription : mai 2006 Messages : 174 ![]() |
Code :
|
||
|
|
00
|
|
|
#6 |
|
Inscrit
Inscription : mai 2004 Messages : 832 ![]() |
regarde surtout du coté de before post de l'outil ibquery, en effet il faut fermer rouvrir ibequry à la fin du post.
mais normalement aprés avec l'option commitRetaining du composant database tout devrait marcher |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : avril 2006 Messages : 6 ![]() |
rebonjour, je ne comprend pas bien le sens de fermer et d'ouvrir, ibquery.active:=false, en suite := true?
merci |
|
|
00
|
|
|
#8 | ||
|
Membre régulier
![]() Inscription : mai 2006 Messages : 174 ![]() |
ça n'a rien à voir avec la propriété 'Active' :
tu met ton code comme ci dessous oki : Code :
|
||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : avril 2006 Messages : 6 ![]() |
j'ai testé toutes les suggestions, aucune ne marche, si ca marche chez vous, peut etre qu'il y'a un probleme ailleurs? cela fait un mois que je bidouille dans ce programme sans que je trouve de solution. toutes autres suggestion est la bien venue.merci
|
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Inscription : mars 2002 Messages : 119 ![]() |
Est ce que ton IBQUERY1 est relié à la même transaction
__________________
Mika www.usargancy.net |
|
|
00
|
|
|
#11 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2005 Messages : 35 ![]() |
Bonjour
Utilises-tu le meme composant IBQuery pour imprimer tes enregistrements ? Si tu utilises un autre composant IBQuery pour imprimer, ferme le, puis ré-ouvre le immédiatement avant d'imprimer. En effet, si le compo IBQuery que tu utilises pour l'impression est actif alors que tu insère des enregistrements via un autre compo, les enregistrements ajoutés ne seront visibles que lorsque le composant sera réouvert ... tekilx |
|
|
00
|
|
|
#12 | ||
|
Invité de passage
![]() Inscription : avril 2006 Messages : 6 ![]() |
rebonjour, je suis désole mais je viens d'essayer toutes les solutions, ça ne donne rien, peut etre que je suis vraiment nul, bon la je vais essayer de n'utiliser qu'un seul IBquery, ibtransaction, ibdatabase..., je vais voir ce que ça va donner. si vous avez autres chose, je suis toujours a l'ecoute.
alors la mon code devient: j'ai deux formes: une principale, et l'autre etat_art, tous mes composants sont sur la forme principale: Code :
merci pour toute aide. |
||
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 259 ![]() |
la première chose à faire serait de ne pas tavailler avec des IBTable
on est pas avec Paradox travailler avec des Query faire les insert et update en sql et bien comprendre les notions de transactions |
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : avril 2006 Messages : 6 ![]() |
merci, je vais essayer pour voir, mais si vous avez une solution avec les ibtable ca serait magnefique.
|
|
|
00
|
|
|
#15 |
|
Membre émérite
![]() ![]() |
Salut,
La première chose à faire est de choisir le niveau d'isolation de la transaction. Met le en No Wait, Read Commited (Si je ne me trompe pas) Ensuite relier les Composant IBX (IBQuery, IbTable, IBDataset, etc)a cette transaction. Ne pas oublier de commiter après les operations de rajout, suppression, modification. Après ça si tu as encore des problèmes, c'est que c'est ailleur. A+
__________________
On progresse ..... |
|
|
00
|
|
|
#16 |
|
Invité régulier
![]() koffi jean parfait EtchienDéveloppeur informatique Inscription : janvier 2010 Messages : 15 ![]() |
Merci Andry j'avais le même problème et ta solution ma été bénéfique
j'utilise de inter-base 2009 et delphi 2009 |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com