Gestione resultset


#1

Salve a tutti, sto implementando un applicativo desktop in Ruby e più
precisamente una rubrica telefonica utilizzando le librerie Gtk.
Vorrei chiederVi un aiuto : come faccio a visualizzare in una Window i
risultati di un resultset, considerando che nel mio caso io ottengo come
risultato un array contenente tutti i nominativi ricercati?
Vi ringrazio anticipatamente per il Vostro aiuto.


#2

Ricciardi Biri wrote:

Salve a tutti, sto implementando un applicativo desktop in Ruby e più
precisamente una rubrica telefonica utilizzando le librerie Gtk.
Vorrei chiederVi un aiuto : come faccio a visualizzare in una Window i
risultati di un resultset, considerando che nel mio caso io ottengo come
risultato un array contenente tutti i nominativi ricercati?
Vi ringrazio anticipatamente per il Vostro aiuto.

Penso che tu possa utilizzare una tabella. Utilizzando le Gtk hai
l’oggetto Gtk::Table che pero’ viene utilizzato per incasellare i
widget, per i dati ti consiglio di utilizzare un Gtk::TreeView. Siccome
l’utilizzo di questo widget non e’ banale, ti consiglio ti leggere il
tutorial: http://ruby-gnome2.sourceforge.jp/hiki.cgi?tut-treeview

ciao!
Gendag


#3

Grazie mille per il suggerimento,
ora però, se posso, vorrei chiedertene un’altro.
Ho una lista di contatti, derivanti dall’interrogazione del dataBase
(SELECT * FROM nometabella), ora vorrei poter implementare la DELETE ed
eliminare così dei contatti.
L’idea è quella di selezionare un contatto ed eliminarlo.
Come faccio a passargli quel contatto selezionato nella query per il
DELETE?
Non so se posso ma allego anche il file ruby nel quale implemento la
rubrica in modo che tu possa dargli un’occhiata.
Spero di ricevere un ulteriore aiuto da parte Tua, ed al tempo stesso Ti
ringrazio moltissimo per i Tuoi preziosi suggerimenti

Gendag ha scritto:


#4

Ricciardi Biagio wrote:

Grazie mille per il suggerimento,
ora però, se posso, vorrei chiedertene un’altro.
Ho una lista di contatti, derivanti dall’interrogazione del dataBase
(SELECT * FROM nometabella), ora vorrei poter implementare la DELETE ed
eliminare così dei contatti.
L’idea è quella di selezionare un contatto ed eliminarlo.
Come faccio a passargli quel contatto selezionato nella query per il
DELETE?
Purtroppo ora ho poco tempo, e non riesco a guardare il codice. Io
solitamente creo nel ListStore una colonna nascosta che, per ogni riga,
contiene l’id del contatto. In questo modo quando selezioni una riga da
cancellare, basta che recuperi l’id e lo rimuovi.

Chiaramente la colonna con l’id e’ nascosta, in modo che non venga
visualizzata all’utente. Per creare una colonna nascosta, e’ sufficiente
che non la specifichi in fase di inizializzazione della TreeView.

Per esempio, guardando il tuo codice, dalla riga 48 inizializzi i 4
TreeViewColumn e poi li aggiungi alla view con view.append_column().
Ora e’ sufficiente che durante la creazione del ListStore alla riga 45,
cambi il codice da:
model = Gtk::ListStore.new(String, String, String, String)
a:
model = Gtk::ListStore.new(String, String, String, String, Integer)
Nell’ultima colonna ci metti gli id, pero’ dal momento che non crei il
TreeViewColumn, questa colonna rimarra’ non visibile all’utente.

ciao!
Gendag


#5

Ricciardi Biagio wrote:

Ti sono infinitamente grato per la risposta.
Però il mio problema rimane poi sempre lo stesso, e cioè, come ed in che
modo posso fargli capire all’interprete di ruby che voglio eliminare la
ennupla che io ho selezionato?
Cioè io seleziono la riga, poi come gli faccio a passare l’id nella
query per la cancellazione?

E’ spiegato nel tutorial sulla TreeView:
http://ruby-gnome2.sourceforge.jp/hiki.cgi?tut-treeview-selection-handle

ciao!
Gendag


#6

Ti sono infinitamente grato per la risposta.
Però il mio problema rimane poi sempre lo stesso, e cioè, come ed in che
modo posso fargli capire all’interprete di ruby che voglio eliminare la
ennupla che io ho selezionato?
Cioè io seleziono la riga, poi come gli faccio a passare l’id nella
query per la cancellazione?
Questo è un passaggio sul quale ci sto perdendo un sacco di tempo.
Cmq davvero non so come ringraziarTi per tutti questi ottimi consigli,
nonchè soluzioni che mi dai.
Spero in una Tua risposta, come sempre esaustiva che mi indichi ancora
una volta la soluzione al mio problema.

ciao!
Biagio

P.S. : Spero Tu abbia avuto un pò di tempo per vedere il codice della
mia applicazione. Mi piacerebbe un Tuo parere. Cosa ne pensi del codice
che ho scritto?

Gendag ha scritto: