Newsgroup: it.comp.lang.visual-basic
Titolo: Ciclo sul recordset

Allora...domanda banale!
Devo riempire una listview con dei dati presi da una tabella
In questa lw ho già caricato alcuni dati tra cui un ID che mi distingue 
univocamente un record
Esempio
ID    NOME   PREZZO
1      pippo
2      pluto
3      paperino
ora mi devo cercare il prezzo nel database.
Di solito faccio un ciclo for = 1 to listview1.listitems.count sulla lw
per ogni i-esimo elemento per cercarmi il prezzo apro il recordset con 
clausola where id = "& listview1.listitems(i).text &"
e piano piano mi completo il mitico tabellone!!!!
Due domande
1) Esiste un metodo migliore? Lo chiedo perchè credo di si..ma non mi viene 
in mente nulla...
2) Ad ogni ciclo è buona norma chiudere il recordset e la connessione oppure 
è meglio chiuderla alla fine del ciclo?
Grazie
IAK 

 č meglio chiuderla alla fine del ciclo?
Se hai molto tempo da perdere...
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Prima di essere nel ListWiev, l'elenco degli articoli dove č?
Su un'altra listview, nella quale non č caricato il prezzo per motivi che nn 
sto qua a spiegare....
Grazie 

 Su un'altra listview
Per cui continuiamo...
Prima di essere in quest'altra listview (mi fido della ortografia :-), i
dati dove sono.
Se rispondi "in un'altra listview" ti mordo.


 è meglio chiuderla alla fine del ciclo?
No, in questi casi è molto più veloce aprire tutto all'inizio e chiuderlo alla
fine del loop.
Bye
Raf


Ti spiego. Mi carico da database i dati su una listview. E' un listino 
pro-forma. Nel senso che ci sono solo i prezzi di vendita e non
i costi di produzione. Quindi ho impostato il tutto in questo modo. Ho una 
Tabstrip. Nella prima pagina ho questa listview in cui posso
cipollarmi il listino mettere gli sconti etcetcetc...tutto sotto gli occhi 
del cliente...nell'altra pagina ho una seconda listview nella quale alla 
pressione
di un commandbutton parte una sorta di analisi che mi deve cercare nel 
database elemento per elemento i costi di produzione e i costi indiretti
per potermi poi calcolare l'utile e il guadagno percentuale rispetto al 
prezzo di vendita... 


Sai che cosa? Questo metodo che sinceramente utilizzavo prima, l'ho 
accantonato perchè risulta più lento di un ciclo for per grosse quantità di 
dati....

 prezzo di vendita...
Non credo che la listview funzioni in modalità bound ai dati... se così
fosse potresti forse generarti una tabella locale con una o più colonne
calcolate, e lasciar fare tutto a lei, ma non ci ho mai provato.
Se vuoi lavorare sui due tempi, cercando di volta in volta il prezzo
dell'articolo, caricherei un recordset statico lato client con tutti gli
articoli e poi sfrutterei il metodo filter del recordset medesimo.



Vediamo se ho capito:
Mi carico sul client l'intero recordset mi disconnetto e poi inizio a 
cipollare.
Problema.
Il database è su un server. Listino con circa 10000 voci...
non è un massacro per la rete e poi per il client trasportarsi tutto sto 
malloppone!?
IAK 

 malloppone!?
E' possibile. Quando carichi il recordset puoi limitarti a raccogliere
solo le righe che ti interessano con una bella clausola 
WHERE [campo] IN (Val1,...,Valn)
Questo dovrebbe ridurre drasticamente sia l'impegno di risorse che il
tempo necessario ad effettuare ogni singolo filter.


 ha scritto nel messaggio
news:ccxYe.14836$Jr.2...@twister2.libero.it...

Ma "per ciascun elemento della listview" *È* un ciclo for... non capisco cosa
vuoi
dire.
Raf