Newsgroup: it.comp.lang.visual-basic
Titolo: Chiedo aiuto per ADO

Stiamo sviluppando un'applicazione che utilizza per la gestione delle
anagrafiche i seguenti oggetti: ADO Data Control a cui è legata una
Select SQL per il recupero dei dati, Data Grid legata all'ADO Data
Control per la visualizzazione dei dati stessi. 
Alla pressione di un pulsante dedicato alla cancellazione dei dati,
viene innescato del codice che tramite un'istruzione SQL Delete cancella
dal DB il record selezionato; terminata tale fase viene eseguito il
refresh sull'oggetto ADO Data Control prima e Data Grid poi. 
Succede che sulla griglia il record rimane, mentre nel DB viene
cancellato; per vedere effettivamente a video la cancellazione, devo
chiudere e riaprire la maschera, ove nell'evento Load viene rieffettuato
il refresh. 
La cosa più strana è però che se io ripeto le precedenti operazioni con
il DB Access aperto, tutto funziona correttamente. 
Ringrazio chi mi ha dato i suggerimenti precedenti: 
1.	Questo sembra essere un bel bug di ADO, anche se alla M$ dicono
che loro non lo riscontrano. Comunque prova così: Call
dtgGrid1.ClearFields Call dtgGrid1.ReBind dopo è necessario un
riassestamento delle colonne... oppure, anzichè usare un ADODC come
datasource prova direttamente con Set DBGrid.DataSource =
ADODC.Recordset 
2.	Prima di eseguire il delete, sgancia la datagrid con Set
DataGrid1.Recordsource = Nothing e poi fatto il Delete lo riagganci con
Set DataGrid1.Recordsource = ADODC1.Recordset Ciao 
Ma il risultato non cambia, anzi dirò di più: provando l'applicazione in
debug funziona, se la faccio girare normalmente no. 
Se qualcuno ha da darmi qualche suggerimento? Grazie. 
-- 
Posted from [195.250.226.3] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ciao,
...premetto che non uso Datacontrol da anni, preferisco i Recordset puri...
ci possono essere varie cose...
Innanzi tutto è necessario vedere chi vede la modifica: ADOC la vede?
Sempre?
A questo punto si può cercare di capire se la DataGrid non risulta
rinfrescata...
Solo con il Delete o anche con Addnew?
Se Delete lo lanci dal Recordset?
Ciao
Franco

 ha scritto nel messaggio
news:415FBAC362BBD211B7060008C75C4ADE0365A3@DSWNT6B...
Stiamo sviluppando un'applicazione che utilizza per la gestione delle
anagrafiche i seguenti oggetti: ADO Data Control a cui č legata una
Select SQL per il recupero dei dati, Data Grid legata all'ADO Data
Control per la visualizzazione dei dati stessi.
Alla pressione di un pulsante dedicato alla cancellazione dei dati,
viene innescato del codice che tramite un'istruzione SQL Delete cancella
dal DB il record selezionato; terminata tale fase viene eseguito il
refresh sull'oggetto ADO Data Control prima e Data Grid poi.
Succede che sulla griglia il record rimane, mentre nel DB viene
cancellato; per vedere effettivamente a video la cancellazione, devo
chiudere e riaprire la maschera, ove nell'evento Load viene rieffettuato
il refresh.
La cosa piů strana č perň che se io ripeto le precedenti operazioni con
il DB Access aperto, tutto funziona correttamente.
Ringrazio chi mi ha dato i suggerimenti precedenti:
1. Questo sembra essere un bel bug di ADO, anche se alla M$ dicono
che loro non lo riscontrano. Comunque prova cosě: Call
dtgGrid1.ClearFields Call dtgGrid1.ReBind dopo č necessario un
riassestamento delle colonne... oppure, anzichč usare un ADODC come
datasource prova direttamente con Set DBGrid.DataSource =
ADODC.Recordset
2. Prima di eseguire il delete, sgancia la datagrid con Set
DataGrid1.Recordsource = Nothing e poi fatto il Delete lo riagganci con
Set DataGrid1.Recordsource = ADODC1.Recordset Ciao
Ma il risultato non cambia, anzi dirň di piů: provando l'applicazione in
