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

Re: ListBox, database ed altro...

To: REALbasic NUG Italian <realbasic-nug dot it at lists dot realsoftware dot com>
Subject: Re: ListBox, database ed altro...
From: Marco Bambini <marco at sqlabs dot net>
Date: Fri, 19 Jan 2007 13:37:45 +0100
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot it at lists dot realsoftware dot com
References: <697232B0-10F5-4CB8-9616-C4EB85642BBA at tin dot it>
On Jan 19, 2007, at 12:03 PM, Lucio Liberi wrote:

La domanda e' questa:
Una volta che ho il mio rs, se lo metto dentro una variabile globale che so? App.MyRS, posso riutilizzarlo senza dover ripetere le SELECT?
Ebbene, io non ci sono riuscito.

In teoria si, però c'è un buco in REALbasic penso dalla version 3.0 che ti impedisce di farlo. L'errore è dato dal fatto che quando arrivi a leggere l'ultimo record del tuo RecordSet (ovvero quando RecordSet.EOF è true) il RecordSet viene chiuso e quindi diventa non più valido. Questa cosa non è controllabile o aggiustabile da chi scrive i plugin, ma è un buco di RealBasic che non è mai stato risolto.

Una possibile soluzione è quella di usare un array bidimensionale invece che un recordset, in questo modo dopo la tua query, ti scrivi tutti i record e tutti i campi del tuo recordset in questo array globale ed il problema è risolto.

La cosa mi serve per scorrere i record selezionati in un'altra finestra che non fosse quella nella quale e' presente la listbox, per intenderci. In una listbox, posso mettere - per esempio - 4 field, poi nella pagina-scheda, visualizzo tutte le informazioni del record... Spero di esser stato chiaro... Insomma, non sto scrivendo un programma per masterizzare DVD... Ecco, ci tenevo a dirlo.

In realtà la soluzione ottimale sarebbe quella di usare i dati stessi del database in tutte le finestre e non un qualceh contenitore globale. Potresti passare alla tua finestra secondaria i rowid dei vari record da visualizzare e poi dentro la finestra fai una:
SELECT * FROM myTable WHERE rowid=Num1 OR rowID=Num2 e cosi via...

Spero di essere stato abbastanza chiaro....

---
Marco Bambini
http://www.sqlabs.net
http://www.sqlabs.net/blog/
http://www.sqlabs.net/realsqlserver/



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