Le 15 avr. 08 à 16:40, olivier corouge a écrit :
J'ai constaté cela en accédant à une base de données: en modifiant
les données à l'aide d'un outil externe puis en relançant une
compilation/exécution, ce sont toujours les anciennes données qui
s'affichent dans ma lisbox (alimentée par un SELECT FROM).
La listox affiche les données qui lui sont retournée. Fournit une
base exemple car là on nage dans le flou.
Quel flou?
Bon, je vais préciser. J'ai reproduit le bug avec une base toute simple:
Soit une base minimaliste avec une table 'client' contenant deux
champs: l'identifiant (client.id) et le nom du client (client.nom)
Voici le code, placé dans la zone "open" de la listbox:
sub Open
Dim db as PostgreSQLDatabase
db= New PostgreSQLDatabase
dim query as string
dim rs as recordset
Dim V as String
Dim i as Integer
db.host=hote
db.port=port
db.DatabaseName=nombase
db.Username=utilisateur
db.Password=motpasse
If db.connect then
query="SELECT client.nom, FROM client ORDER BY client.nom"
rs=db.SQLSelect(query)
if rs <> nil then
Listbox1.DeleteAllRows
Listbox1.Columncount = rs.FieldCount
While Not rs.eof
v = rs.IdxField(1).StringValue
Listbox1.AddRow v
For i = 2 to rs.fieldcount
Listbox1.Cell(Listbox1.lastIndex, i - 1) =
rs.IdxField(i).StringValue
next
rs.MoveNext
Wend
else
MsgBox "rs nil : " + db.ErrorMessage
end if
else
MsgBox "The connection failed."
end if
end sub
Je lance la compilation, tout s'affiche correctement.
Je modifie les données de la base, en modfiant par exemple quelques
noms de clients. Je fait cela avec un outil externe (PgAdmin en
l'occurence).
Je relance ma compilation/execution et j'ai les anciennes données qui
s'affichent dans ma listbox...
Maintenant, j'ajoute un bouton et je fais un copier-coller du code
dans la zone 'action" du bouton. Je clique, les données correctes
s'affiche.
Je quitte mon application et je la relance, j'ai toujours les
anciennes données qui s'affichent...
|