Newsgroup: it.comp.lang.visual-basic
Titolo: Problema di velocità con un oggetto recordset

Stň realizzando un programma in vb5 pro, ho realizzato una query con piů di
200 campi (l'ho realizzata in access 97), il problema ora č questo:
l'archivio contiene circa 150 record, quando aggiungo dei dati dall'access,
li inserisce e aggiorna le query in tempo reale, quando nel mio programma
vb5 aggiungo dei dati con il metodo addnew, il programma si blocca per circa
10 secondi e dopo mi da di nuovo il controllo con la query aggiornata. Penso
che il motore del vb5 sia uguale a quello dell'access, quindi il problema
deve essere nel mio programma.
altre informazioni sul mio programma:
la query ha circa 220 campi, di cui circa 200 sono associati a dei textbox
che si aggiornano automaticamente utilizzando dopo delle modifiche il metodo
UpdateRecord (Data1.UpdateRecord) il rallentamento perň non avviene quando
modifico dei dati del record e il programma li aggiorna, ma avviene quando
creo un nuovo record con il metodo addnew.
Qualcuno mi sa spiegare il perchč di questo rallentamento (nel vb5 si e
nell'access no) e mi puň dare qualche dritta su come risolverlo ?
Non sono un programmatore professionista, mi diletto nel tempo libero,
magari č una cretinata e non me ne accorgo.
Ciao e grazie
pe...@mdnet.it

 creo un nuovo record con il metodo addnew.
I textbox sono associati ai campi del controllo Data1 utilizzando le
proprieta' DataField e DataSource ?
Se cosi' fosse, potrebbe essere il controllo Data1 a rendere tutto cosi'
lento, dovendo creare un nuovo record e fare l'update dei link ai 200
textbox.
Una soluzione potrebbe essere quella di gestire il nuovo record con una
procedura a parte, che utilizzi un altro recordset aggiornato tramite
codice....
Non so darti altro aiuto.
Valentino

deve essere nel mio programma.
Infatti,
Il problema risiede nel fatto che lasci che Data1 prenda iniziative.
Devi scriverti il codice e decidere TU in quale momento il recordset deve
essere Updatato.
Posso aiutarti solo cosě, spiacente.
Ciao,
Aldus

deve essere nel mio programma.
200 textbox sono certamente troppi, hai un buon motivo per non usare una
grid, magari
 filtrata attraverso una stringa SQL con qualcosa sul tipo:
    myQry = "SELECT CampoX, CampoY FROM myTab WHERE CampoX LIKE '" + Text1 +
"'"
    Data1.RecordSource = myQry
    Data1.Refresh
Text1 č il controllo contenente il valore da utilizzare come filtro, in
questo modo il controllo
Data1 vede solo i record filtrati e di conseguenza anche la grid visualizza
solo quelli.

la query ha circa 220 campi, di cui circa 200 sono associati a dei textbox
Probabilmente il rallentamento è dovuto al data control.
Ho solo una curiosità: sei sicuro di aver trovato la soluzione
migliore al tuo problema? 200 textbox sono davvero tanti, penso che
sia un po' angosciante per chi usa il programma vederli tutti nella
stessa finestra.
Probabilmente se ci pensi un po' su riesci a trovare un soluzione
migliore come interfaccia.
Ciao
--------------------------------------------------------------------
Fulvio Senore
Eliminate "zz" dall'indirizzo e-mail per scrivermi (spammers...)
Remove "zz" from e-mail address to write me (spammers...)
--------------------------------------------------------------------


Lo so, ma il problema è che servono tutti li!! :( purtroppo.
Ciao e grazie.

 li inserisce e aggiorna le query in tempo reale, quando nel mio programma
...

 deve essere nel mio programma.
Ciao, posso solo condividere la tua disperazione. Prima di modificare iltuo
programma per eliminare il control, volevo comunque avvertirti che non
otterrai il vantaggio sperato. Sicuramente sara` piu` veloce, ma esiste comunque
una notevole differenza rispetto all'uso di access "puro".
Ma non chiedermi perche` ...
--
Bye. __Andrea Cao__


Non penso che dipenda dal tuo programma quanto dal fatto che access come VB
si riservano (penso9 delle aree di memoria. Se fai caso il tuo programma
probabilmente girerà più velocemente all'interno di VB che come file *.exe
Ciao Bruno