Newsgroup: it.comp.lang.visual-basic
Titolo: Refresh DataGrid ad ADO - problema individuato: soluzione ?

Salve a tutti,
come qualcuno di  voi ricordera' vi ho rotto le palle con la storia
del mancato aggiornamento del controllo datagrid con ADO dopo una
modifica sui record del DB.
Tale problema pare sia dovuto (fonte microsoft) ad un delay che esiste
nell'aggiornamento dei dati con l'uso di ADO e Access.
Soluzione ?
Non trovo altra maniera se non quella di inserire dei cicli per
ritardare il refresh del recordset associato al data control, ma e'
sinceramente una cosa MOLTO penalizzante oltreche' mi sembra una vera
cagata...scusate il termine....
che faccio torno a DAO ? E poi pero' come uso la datagrid ? Credo che
solo con ADO posso usarla....
AIUTO !
Grazie
Turbina

 ha scritto nel messaggio
news:4rasvt8miq7fvctou...@4ax.com...


 
con DAO c'e' la DBGrid ( fornita standard col VB5 non so col VB6 ) e'
praticamente identica 
e c'e' anche il controllo Data ( cossipondente all'ado data control ) a
ciu attaccare la DBGrid

Sono veramente nei guai e se mi potessi aiutare ti sarei veramente
grato;
allora, ti spiego che il flusso del mio programma e' questo:
formA	inserisco via DAO (uso opendatabase,openrecordset ecc....) una
serie di valori in una tabella di un db access.
Chiamo la formB.
In essa ho un datagrid associato ad un ado data control (considera che
per usare il datagrid ho usato il wizard per la creazione di una form
dati);
Nella datagrid cambio alcuni valori che mi interessano e premo un
pulsante di aggiornamento il cui codice e' questo:
sub cmdUpdate_click
datPrimaryRS.Recordset.UpdateBatch adAffectAll
--->aggiorno il db con i dati modificati nella datagrid
call formA.myfunc1 --->nessuna azione sul db
call formB.myfunc2 --->elaboro i record aggiornati via ADO nel DB e
riaggiorno il DB usando sempre una serie di procedure DAO
datPrimaryRS.Recordset.Requery
end sub
Perche' ho usato DAO e ADO insieme ? 
Semplicemente perche' avevo ASSOLUTO bisogno di usare la datagrid
(utilizzabile solo con ADO) per presentare al cliente i dati in un
certo modo e per consentirgli di modificarli e contemporaneamente
avevo delle routine di accesso e scrittura nel DB fatte in DAO (che
scorrono semplicemente i record della tabella e li aggiornano
all'occorrenza) che non sapevo come realizzare in ADO (sono alle prime
esperienze in ADO).
Se potessi aiutarmi te ne sarei veramente grato.
Ciao
Turbina


Sapevo qualcosa del genere ma due cose:
1)	Vorrei pian piano passare ad ADO se tale problema fosse
risolvibile;
2)	ho provato  a prendere dal cd 3 di VS6 il controllo dbgrid ma
dopo essere riuscito a risolvere un problema di licenza (ho eseguito
un .reg che c'era associato al controllo) che mi dava quando provavo a
disegnare il controllo, poi ottenevo un errore quando tentavo di
accedere alle proprieta' presonalizzate del controllo (qualcosa del
genere, si sta tentando di accedere alla classe ......)
Se avete aiuti vi sono grato.
Saluti
Turbina


con DAO puoi usare la DBGrid ......
CIAO

 ha scritto nel messaggio
news:e5gsvtsmb5dofo1gk...@4ax.com...


Innanzitutto non riesco ad installare il componente dbgrid32.ocx. Puoi
darmi indicazioni di come fare per evitare vari errori ?
No, non ho aperto il recordsert in modalita' batch optimistic, ti
ripeto che ho lasciato fare al wizard.
3) Questa e' la sezione ADO in cui con un pulsante vorrei aggiornare
tramite due funzioni i record nel mio db (le funzioni usano codice
DAO) e poi vorrei rivisualizzare i record suddetti nella mia datagrid.
sub cmdUpdate_click
datPrimaryRS.Recordset.UpdateBatch adAffectAll
--->aggiorno il db con i dati modificati nella datagrid
call formA.myfunc1 --->nessuna azione sul db
call formA.myfunc2 --->elaboro i record aggiornati via ADO nel DB e
riaggiorno il DB usando sempre una serie di procedure DAO
datPrimaryRS.Recordset.Requery
end sub
P.S.(1) Usare ADO e DAO crea problemi ?
P.S.(2) Se riuscissi ad usare la dbgrid lavorerei soltanto con DAO e
forse risolverei....porca miseria, ma non mi si installa....
P.S.(3) Se inserisco tempi di attesa di circa 5 - 6 secondi la mia
datagrid si refresha in modo corretto (d'altronde la microsoft
riconosce che il problema e' legato ad un fattore di caching che fa si
che l'aggiornamento ci sia dopo 5 secondi)...
Ciao e grazie ancora, sono veramente in difficolta'.
Turbina


 >Se posso aiutarti farň del mio meglio....a presto. Andrea


Scusa Andrea, forse non riesco a spiegarmi.
La data grid e' legata ad un data control.
Il problema dell'aggiornamento ce l'ho soltanto quando (guarda il
codice che ti ho passato),dalla presisone di un pulsante, deve
attivarmi due funzioni di cui la seconda deve modificare (via DAO)
records della tabella.
Al termine della funzione, quando il controllo torna all'evento click
del pulsante, vorrei avere il refresh del datagrid che, a meno di far
passare qualche secondo, non ottengo.
Sono stato piu' chiaro ora ?
Ciao e grazie ancora.
Turbina
