Gambas-it

Gambas3 => Programmazione => Topic aperto da: andy60 - 23 Settembre 2010, 08:46:44

Titolo: Combobox, ricerca id
Inserito da: andy60 - 23 Settembre 2010, 08:46:44
una tabella:
id
descrizione

se inserisco in un combo la descrizione, per reciperare l'id quale soluzione è meglio a vs parere:

Codice: [Seleziona]
mycombo.add(descrizione,id)

e poi

Codice: [Seleziona]
myres.MoveFirst
myres.MoveTo(mycombo.Index)

oppure

Codice: [Seleziona]
mycombo.add(descrizione)

creare una sub che ricerchi l'id dalla descrizione
Titolo: Re: Combobox, ricerca id
Inserito da: md9327 - 23 Settembre 2010, 10:15:33
A parte che questa cosa credo sia stata già discussa, il problema maggiore è se devi sortare la lista...

Comunque, di solito io uso un array esterno, anche perchè l'id, come lo chiami tu, non è detto sia sequenziale.

Ti ricordo che la combo non può contenere buchi, e l'indice segue un andamento sequenziale a passi di 1.
Titolo: Re: Combobox, ricerca id
Inserito da: andy60 - 23 Settembre 2010, 10:21:55
A parte che questa cosa credo sia stata già discussa, il problema maggiore è se devi sortare la lista...

Comunque, di solito io uso un array esterno, anche perchè l'id, come lo chiami tu, non è detto sia sequenziale.

Ti ricordo che la combo non può contenere buchi, e l'indice segue un andamento sequenziale a passi di 1.


luigi so che ne abbiamo già parlato ma, pur avendo approfondito la cosa, ogni tanto mi trovo errori. Ho deciso la cosa pi' sicura x me, sicuramente non la migliore, ricerco i dati del combo dal valore del text, con gli array che intendi te ho problemi non mi sento sicuro
Titolo: Re: Combobox, ricerca id
Inserito da: md9327 - 23 Settembre 2010, 10:44:46
Te l'ho detto, se l'id è sequenziale non ci sono problemi...
Titolo: Re: Combobox, ricerca id
Inserito da: Ceskho - 23 Settembre 2010, 12:14:58
Con un ciclo for puoi riempire la combobox (mediante combobox.add) per valori che vanno da 0 a (dati.count - 1) dove dati.count sono i dati che hai ricercato nel tuo database.
Titolo: Re: Combobox, ricerca id
Inserito da: andy60 - 23 Settembre 2010, 14:28:59
Te l'ho detto, se l'id è sequenziale non ci sono problemi...

non è detto, devo poter prevedere anche il fatto di eliminare fisicamente o flaggare come eliminato qualche record, a quel punto va fatta la routine di ricerca x stringa testo del combobox
Titolo: Re: Combobox, ricerca id
Inserito da: md9327 - 23 Settembre 2010, 14:58:48
Una ListBox non potrebbe essere meglio?
Titolo: Re: Combobox, ricerca id
Inserito da: fsurfing - 23 Settembre 2010, 15:50:20
forse la cosa migliore è una listwiev popolata tramite una collection
Titolo: Re: Combobox, ricerca id
Inserito da: md9327 - 23 Settembre 2010, 16:22:00
Come ti pare...

Ad ogni modo, uno deve cercare il miglior modo per rappresentare una determinata cosa.
Ora, non sò bene cosa andy deve fare, ma secondo me dovrebbe valutare altre alternative, dato che gli strumenti e le relative conoscenze di questi ultimi, non permettono di risolvere in tempi brevi e in modo semplice.

...mio parere... ovvio...
Titolo: Re: Combobox, ricerca id
Inserito da: andy60 - 24 Settembre 2010, 10:44:21
ripeto, l'obiettivo è la ricerca di un certo id a partire dall'evento click del combo, questo tipo di routine non ha problemi di sorta se , come dice Luigi, gli id sono consecutivi (tutti gli id sono consecutivi quando creati con campo 'serial'). Il problema sorge se si cancella fisicamente un record, o no?
Allora ho semplicemente variato la quesry da:

Codice: [Seleziona]
SELECT.... FROM .....

in

Codice: [Seleziona]
SELECT....FROM.... WHERE campotestodellatabella=valoretextdelcombo
Titolo: Re: Combobox, ricerca id
Inserito da: md9327 - 24 Settembre 2010, 13:55:49
Il campo serial non esclude che, se cancelli un record, la sequenza non viene interrotta. Non puoi basarti su questo, a meno che non prevedi che la tabella non venga mai soggetta a cancellazioni.
Titolo: Re: Combobox, ricerca id
Inserito da: andy60 - 24 Settembre 2010, 15:13:28
Il campo serial non esclude che, se cancelli un record, la sequenza non viene interrotta. Non puoi basarti su questo, a meno che non prevedi che la tabella non venga mai soggetta a cancellazioni.

se cancello il record, la sequenza viene interrotta...cmq lsql che ti ho detto sopra funzione x cui faccio cosi penso....grazie x le info cmq amico mio