Newsgroup: it.comp.lang.visual-basic
Titolo: Situazione strana!

Salve a tutti.
Volevo sapere se a qualcuno è già successa una cosa del genere:
Io uso un controllo ADO Datacontrol, in più uso una mia classe che utilizza
ADO 2.5.
Io faccio una select su una tabella in un databasecon 3 record.
La classe che usa ADO 2.5 mi restituisce un Recordset con i 3 record, mentre
la query passata al Datacontrol mi restituisce 2 record.
Constatando che i 3 record ci sono tutti sani e salvi nel DB, qualcuno mi sa
mica dire come mai il controllo si comporta così?
Nb. La query è la stessa in tutte e due le situazioni!
Grazie!

Dovrebbe essere un problema di caching dei dati.
Prova a chiudere e poi a riaprire la connessione prima di effettuare
l'interrogazione e fammi sapere che succede.
Ciao.
Luciano.

 wrote in message
9hvaib$68c$1...@nreadA.inwind.it...


Vediamo se ho capito bene:
fai delle scritture mediante un oggetto ADODB e poi con il Datacontrol fai
una query e speri di trovare i dati che hai appena scritto. E cosě?
Se č cosě io credo che l'oggetto ADODB non abbia ancora scritto
effettivamente i dati e quindi perciň non te li trovi con il Datacontrol. Ti
ripeto fai una prova: chiudi la connessione dell'oggetto ADODB e poi fai la
query con il Datacontrol.
Fammi sapere.
Ciao.
Luciano.

 passargli l'oggetto connection che utilizzo anche nella mia classe!?!!?
Sě, ti cunviene usare una connection _centralizzata_ per _tutti_ i recordset
che usi nel tuo progetto.
Ho avuto anch'io il tuo problema e cosě non mi si č piů verificato.
Considera che ADO č un sistema client-server, quindi ciascun client potrebbe
non sapere cosa fanno gli altri.
La connection unica dovrebbe scavalcare il problema (dico "dovrebbe" perchč
di ADO non ne so molto)
Ciao

Se non ho capito male, ADO ti restituisce un numero errato di record totali,
giusto?
Io ho avuto un problema simile (anche se con il controllo DATA). L'ho
risolto inserendo, nell'evento Form_load,
Data1.Recordset.MoveLast
Data1.Recordset.MoveFirst
Fammi sapere se funziona, o se ho capito male il problema

 effettivamente i dati e quindi perciò non te li trovi con il Datacontrol.


 Ciao
Ok mi piacerebbe utilizzare lo stesso oggetto Connection, ma come faccio a
dire al DataControl di usare la connection già esistente (se: set
DtControl.qualcosa = Miaconnection)?
Per adesso so solo usare le proprietà ConnectionString e recordsource, ma
così facendo creo all'interno del Datacontrol una nuova connection!!!

 wrote in message
9i00kr$3tr$1...@pegasus.tiscalinet.it...

Posso provare, ma dubito perché in fase di progettazione io collego la
datagrid al Datacontrol , poi passo la connectionstring al Datacontrol, La
query e faccio un refresh e automaticamente i dati appaiono nella Datagrid.

 così facendo creo all'interno del Datacontrol una nuova connection!!!
Ti crei una connessione e poi fai
    Adodc1.Recordset.Close
    Adodc1.Recordset.Open "select * from articoli", MyConnection
    Adodc1.Refresh
Hai anche il vantaggio di poter definire a runtime la connessione e gestire
tu il fatto di tenere aperto il DB.
Ciao

 così facendo creo all'interno del Datacontrol una nuova connection!!!
Sarebbe preferibile usare dirattamente un ADODB.Recordset, piuttosto che il
(bacato) ADODC.
Ciao

query e faccio un refresh e automaticamente i dati appaiono nella Datagrid.
Puoi, molto piu' semplicemente, aprire il recordset da codice
ed assegnarlo alla proprieta' RowSource della DataGrid.
ciao, hal