Newsgroup: it.comp.lang.visual-basic
Titolo: [? DB] Consiglio

SAlve ragazzi sono indeciso su come procedere e volevo chiederevi un parere.
ho la necessità di mostrare il risultato di una grossa query (
c.ca
 16.000
record) in un controllo, nel quale l'utente possa scegliere quello che serve
(riporta i comuni con province, regioni, stato, cap e altro) ovviamente la
query è di selezione (unisco la tab comuni, con quella province, con quella
regioni, con quella stati)...
allora siccome voglio usare dao (per problemi di ottimizzazione) e vorrei
evitare di usare oggetti precostituiti che appesantiscono il sitema non so
che oggetto usare per mostrare qsta query... in sintesi:
Che oggetto uso per visualizzare una query (presente nel db) senza usare
oggetti data?
GRazie ;-)



Beh, potresti usare una ComboBox classica, riempiendola con un ciclo del
tipo

do until rs.eof()


    rs.movenext


loop


rs.close


dove rs e' il recordset selezionato.

Ovviamente funziona se per ogni record costruisci una stringa, da aggiungere
alla Combo con un AddItem.

Massimo 8-]

P.S. Se usi i fields per accedere al recordset, al posto dei rs(".."),
la velocita' di caricamento migliora anche del 30%



urka!
in che senso field??
io stavo pensando di usare una listbox.. il che dovrebbe essere lo stesso..
ma siccome per ogni record ci sono 5 campi devo anche creare la striga
adatta...
insomma ci inpiega parecchio a caricare 
c.ca
 16000 record nel controllo... e
deve girare su macchin più lente... al che sono un po' nei casini...

 ha scritto nel messaggio
news:38ed...@pc-maurizio.fauser.edu...

ehila' :)
molti tuoi messaggi li vedo tre giorni dopo... cmq:
* caricare un combo
Public Sub RefreshPV()
    Dim rs As Recordset
    Set rs = MainDB.OpenRecordset("province")
    ' oppure la tua query come origine del rs
    rs.Index = "sigla"
    Do While Not rs.EOF
        frmCli.cboPV.AddItem rs!sigla
        rs.MoveNext
    Loop
    rs.Close: Set rs = Nothing
End Sub
e' abbastanza veloce, anche se con 16k non ho provato. piu' che la cpu,
spera nella ram delle macchine su cui girera'.
* alternativa: nowcombo multicampo, sul sito comune.
* alternativa al listbox con stringa da costruire: listview.
caio, cioe' ciao, a.

* alternativa al listbox con stringa da costruire: listview.
cavolo mai usato!!!!

credo che in termini di ottimizzazione faccia schivo... uffa!!!!
esiste un listbox a più campi????? (colonne??)
--
Saluti da Barovia
Strahd von Zarovich
IHGGer #893

esiste un listbox a pių campi????? (colonne??)
si, puoi settare le tabulazioni in una ListBox in modo che, anche se usi
caratteri TT, risultano comunque incolonnate...
'Per settare le tabulazioni in una ListBox
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As
Any) As Long
Private Const LB_SETTABSTOPS = &H192
Public Function SettaTabulazione(lstListBox As ListBox, TabPos As Long) As
Boolean
    ReDim TabStop(1) As Long
    TabStop(1) = TabPos
    SettaTabulazione = CBool(SendMessage(lstListBox.hwnd, LB_SETTABSTOPS, 1,
TabStop(1)))
    lstListBox.Refresh
End Function
cosė setta solo la prima tabulazione, ti lascio il gusto di scoprire come
fare a impostarne 5     :)
(vedi range array...)
Ciao
Faber

 esiste un listbox a più campi????? (colonne??)

urka.. che casinoso... wait...... ok ci sono...yes ma non avendo le colonne
a lunghezza variabili riscio di pedere dei dati.... (non ho 162 caratteri
(colonne!)a disposizione :-)!
uhmmmmmmm..... quanto occupano i list box?? 5 listbox sono più o meno
pesanti di un msflexgrid e un data control (dao)???.... kavolo tra un po'
uso un file aperto in modalità binary associato ad una matrice con lettura a
blocchi modello idx cobol!!!!!!... per la serie vecchio è meglio...


(colonne!)a disposizione :-)!
c'ho provato    :-)))))
Faber

aprezzo il tentativo :-)
grazie ;-))


 blocchi modello idx cobol!!!!!!... per la serie vecchio è meglio...
be', le scarpe non si fermano quando scioperano i benzinai... pero'...
ripeto: tenta col listview, un po' palloso, ma molto piu' ricco
potenzialmente.
pesantezza: prova concretamente, con vbp-a e vbp-b, identici nei form
(fregatene del codice) salvo i controlli. fai dei test col resource monitor
di windows, e controlla quante risorse si pappa (a win vuoto) l'uno e quante
l'altro. cronometra il load. prova su macchine con 16 di ram.
gui: dove cavolo li metti 5 lb praticabili ? un mio amico che si sta
progettando un sito mi ha fatto vedere orgoglioso l'homepage: un jpeg
inframato di 800*600 e sotto "best view: 1280*1024". (nb: lo stava testando
su un mio lcd 18" che sembra una piscina). essendogli affezionato, gli ho
solo chiesto se era un sito commerciale o creativo. il dramma e' che sarebbe
commerciale.
di fondo: quanti campi devi caricare ? ancora mi sfugge.
non volermene, stiamo lavorando per v/noi :)
ciao, pal