realbasic-nug.fr
[Top] [All Lists]

Re: bug sur Open

To: REALbasic NUG French <realbasic-nug dot fr at lists dot realsoftware dot com>
Subject: Re: bug sur Open
From: Robin de Kat <sxenvironnement at mac dot com>
Date: Tue, 15 Apr 2008 17:11:22 +0200
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot fr at lists dot realsoftware dot com
References: <AB077965-AB78-4216-B3FD-574A6442E9A5 at mac dot com> <C0B4BB01-2D9C-4028-AE9D-1EE2FB4D2183 at realsoftware dot fr>

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...

<Prev in Thread] Current Thread [Next in Thread>