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

Re: postgreSQL et Mac Intel

To: REALbasic NUG French <realbasic-nug dot fr at lists dot realsoftware dot com>
Subject: Re: postgreSQL et Mac Intel
From: Robin de Kat <sxenvironnement at mac dot com>
Date: Mon, 26 May 2008 17:00:59 +0200
Authentication-results: mx.google.com; spf=pass (google.com: domain of realbasic-nug dot fr-bounces at lists dot realsoftware dot com designates 66.116.103.65 as permitted sender) smtp dot mail=realbasic-nug dot fr-bounces at lists dot realsoftware dot com
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot fr at lists dot realsoftware dot com
References: <240CEAE3-80F8-4565-A7E2-474A705BFEF2 at mac dot com> <0FD3A1BF-B3A8-4B76-9908-BF3447CB8673 at realsoftware dot fr> <962E46BD-1FFD-483C-B94A-644E76250CAF at mac dot com> <FF9EAC26-95FD-4698-BFA2-76ED923E115A at realsoftware dot fr>

Le 26 mai 08 à 09:47, Stephane Pinel a écrit :


Pouvez-vous m'envoyer un projet RB test avec la description de la structure de la table PGSQL en question ?


Ci-joint un bout de code qui reproduit le problème. (PS: impossible de vous envoyer un mail)

Les objets sont:
Une fenêtre:  Window1
Un PopupMenu: PopupMenu1
Une ListBox= ListBox1

Code 'Open' de PopupMenu1:

//****************************************
 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="localhost"
 db.port=5432
 db.DatabaseName="sxcollecte"
 db.Username="postgres"
 db.Password=""

 If db.connect then

   query="SELECT nom FROM clients order by nom"

   rs=db.SQLSelect(query)
   if rs <> nil then
     popupmenu1.DeleteAllRows

     While Not rs.eof
       v = rs.IdxField(1).StringValue
       popupmenu1.AddRow v
       rs.MoveNext
     Wend
     popupmenu1.listindex=0
   else
     MsgBox "rs nil : " + db.ErrorMessage
   end if
 else
   MsgBox "The connection failed."
 end if
//****************************************




Code 'Change' de PopupMenu1:

//****************************************
 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="localhost"
 db.port=5432
 db.DatabaseName="sxcollecte"
 db.Username="postgres"
 db.Password=""

 If db.connect then
//récupération de l'ID du client à partir du nom choisi via le popupmenu query="SELECT clients.id FROM clients WHERE clients.nom = " +"'" + PopupMenu1.text + "'"+""
   rs=db.SQLSelect(query)
   if rs <> nil then
     v = rs.IdxField(1).StringValue
   else
     MsgBox db.ErrorMessage
   end if

query="SELECT conteneurs.volume FROM ""conteneurs"" INNER JOIN clients ON conteneurs.client_id=clients.id AND clients.id =" + "'" + v + "'" + "order by conteneurs.volume"

   rs=db.SQLSelect(query)
   if rs <> nil then
     Listbox1.DeleteAllRows
     Listbox1.Columncount = rs.FieldCount

     //l'entête
     Listbox1.AddRow rs.IdxField(1).Name
     Listbox1.CellBold(Listbox1.LastIndex, 0) = True
     For i = 2 to rs.FieldCount
       Listbox1.Cell(Listbox1.lastIndex, i - 1) = rs.IdxField(i).Name
       Listbox1.CellBold(Listbox1.LastIndex, i - 1) = True
     Next
     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 db.ErrorMessage
   end if
 else
   MsgBox "The connection failed."
 end if
//****************************************






La base est constituée des tables 'clients' et 'conteneurs'

table clients:
id
nom


table conteneurs:
id
volume
client_id

Je précise que:
- J'utilise RB2007.1
- tout se passe bien sous un Mac G4 avec la version RB2004 du plugin postgreSQL - Sous mac Intel, j'utilise la version 2008 du plugin PostgreSQL (la version 2004 ne se compile pas) et j'essaie de me connecter à une base PostrgeSQL version 8.3.1

Merci pour l'attention portée à mon problème.


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