Newsgroup: it.comp.lang.visual-basic
Titolo: [?][DataGrid] problemi di rinfresco

Ciao a tutti,
problema: (uso ADO) ho una DataGrid (DG1) legata ad un adoDataControl (ADC1)
e un recordset a parte che però lavora sulla stessa tabella.
Se faccio una cosa del genere
    [modifica campi del recordset]
    Recordset.Update
    ADC1.Refresh ' riaggiorno il recordset, così recupero i dati modificati.
    la DG1 mi mostra alcuni valori non ancora aggiornati!
    Se lo faccio passo passo o se metto uno sleep tra l'Update e il Refresh
tutto funziona, ma è improponibile.
    Il problema non sembra essere la griglia perchè se guardo
ACD1.Recordset.Fields("lunghezza") efettivamente contiene il vecchio valore
(anche se solo per 1/2 secondo circa, poi si assesta).
    Inoltre ho provato a sostituire la DataGrid con una MSHFlexGrid è il
problema è identico: sembra proprio essere un problema o del adoDataControl
che non tira su i dati aggiornati, o del Recordset.Update che non scrive in
modo sincrono i dati.
    Dov'è la soluzione?
Grazie a tutti.

Grazie Zanna, io credevo di essere matto, anche i "Mostri" della microsoft
mi hanno gentilmente risposto tra le righe di rivolgermi ad un buon
psicoanalista che mi risolvesse quelle brutte visioni.
Quello che mi convinceva nel credere alla mia malattia era che non vedevo
nessuno con lo stesso problema... ma ora almeno siamo in due.
Ho sviluppato una applicazione statistica piuttosto complessa con milioni di
dati ed ho avuto la bella idea di utilizzare ado, (preciso che lo trovo
estremamente flessibile) ma ho avuto spessissimo il problema da te
descritto, non ti stò a dire i salti mortali che mi sono inventato per
risolverlo, quello che ha dato i migliori risultati è quello di ripetere
l'execute della query che popolava la griglia, sembra che alla seconda
"botta" il motore capisca che deve eseguire il commit, ho provato anche a
ripetere i refresh ma non da sempre i risultati sperati. Il problema si
presenta anche (ovviamente) con le delete e la soluzione che ho trovato
rallenta considerevolmente l'esecuzione. A più di un convegno per
sviluppatori organizzato dalla Microsoft ho esposto il problema ed il
"tizio" mi ha detto di non aver mai incontrato tale bug, ma mi ha esortato a
spedirgli del codice esplicativo, cosa che non ho ancora mai fatto, se tu
hai una semplice applicazione di esempio da potergli mandare spediscimela
che la posto direttamente a lui. Spero, adesso che la casistica è
raddoppiata da 1 a 2, di riuscire a risolvere il problema, il programma l'ho
già consegnato, ma potrei proporre una release migliorativa....
Scusate la prolissità ma era uno sfogo atteso da tempo.
Ciao Axel
Togliere nospam dall'indirizzo di posta

psicoanalista che mi risolvesse quelle brutte visioni.
[Snip]
Come ti ho già detto vie e-mail: "se un professionista dice che una cosa non
si può fare significa che LUI non è capace di farla".
Nel nostro caso "LUI non è capace di risolvere il problema, o peggio non sa
nemmeno del problema".
Comunque se mi avanza un attimo di tempo nel fine settimana tiro fuori un
esempietto stupido che dimostra il teorema ADO = Asynchronous Data Orror.
Ciao

Grazie Zanna, avevo letto la tua mail, ma come al solito non si sà mai se è
più cortese ringaraziare o non stressarti la posta, proverò il metodo che
hai usato tu. Nel frattempo ho notato anche il tuo problema con le immagini
e i datareport, casualmente stò affrontando lo stesso problema ma stò
cercando soluzioni alternative al data report. (non è che stiamo facendo la
stessa applicazione e non lo sappiamo?)


 (non è che stiamo facendo la stessa applicazione e non lo sappiamo?)
Dipende... la tua quanto costa? :)