Newsgroup: it.comp.lang.visual-basic
Titolo: Recordset disconnesso

Va beh...
tocca a me non saltarci fuori.
Dunque. Ho bisogno di popolare un recordset attraverso una query, poi questo
recordset deve rimanere vivo ed utilizzabile anche se la connessione a
Sql-Server cade.
Ho provato a creare un recordset AdOpenStatic e AdUseClient, poi appena l'ho
aperto e popolato, ne creo un clone col .Clone, e butto via il recordset
originale.
Sembrava funzionare. Poi mi sono accorto che se cade la connessione OleDb
con cui avevo aperto il primo recordset, anche il clone risulta chiuso.
Sicuramente esisterà la possibilità di creare una struttura dati in tal
modo, senza dover passare record per record da un recordset all'altro.
Idee?
Ciao
Alberto
--
E non so se avrò gli amici a farmi il coro,
o se avrò soltanto volti sconosciuti,
canterò le mie canzoni a tutti loro
e alla fine della strada
potrò dire che i miei giorni li ho vissuti...

 via il recordset originale.
credo che la strada sia quella da te indicata nel subject, impostando il lock a
optimisticupdatebatch. a quel punto, se non ricordo male, puoi anche chiudere la
connessione senza clonare il recordset.
--
Salutoni
Sergio

 Idee?
Scusate...
Set Recordset_Disconnesso.ActiveConnection=Nothing


 con cui avevo aperto il primo recordset, anche il clone risulta chiuso.
Fermo restando quanto sopra, fammi capire: "diventa" chiuso anche se non usi
metodi che coinvolgano la connessione, come, ad esempio, l'assegnazione di
campi, o "risulta" chiuso quando si chiama in causa la connessione?

Non vorrei dire castronerie, ma hai controllato se ci sono
opzioni di clonazione? Se si, hai verificato che ti preservino
le informazioni di cui hai bisogno?
Hai messo Persist Security Info a True nella ConnectionString?
Fai un pò di prove, che secondo me l'inghippo è in una di
queste cose...
ciao
Andrea

 originale. Prova a non buttar via l'originale.
Ciao Lupastro,
Se capisco quello che fa il ".clone" credo che punti
alla stessa zona di memoria e non penso faccia differenza
quello che ne fai del recordset originale.
Ma potrei sbagliare.
Andrea

 queste cose...
In realtà, come dicevo, ho trovato che basta impostare a nothing
l'ActiveConnection del clone.


*The DeerBear* ha scritto:

Ma il punto mi pare proprio quello: Se il Clone punta allo stesso oggetto e
questo me lo distruggi, come pensi di poter utilizzare l'altro sentiero?
Insomma:
Set f=Form1
Set Form1=Nothing
Fammi vedere come puoi accedere a f...

 la connessione?
Se lo popolo manualmente, usando AddNew, .Value=, ecc.., ovviamente resta
valido.
La problematica nasce quando voglio popolarlo con una query, sia per far
prima
Comunque ho risolto (vedi altri miei post in questo thread).


 Fammi vedere come puoi accedere a f...
assolutamente nulla, imho.
diverso il discorso di
set f = form1
form1.close
--
Salutoni
Sergio

 
"Chiudendo il recordset originale non si chiudono le relative copie e 
chiudendo una copia non si chiude l'originale o alcuna delle altre 
copie." (da MSDN)
ciao
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

 Fammi vedere come puoi accedere a f...
--


 costui resta valido anche a connessione originale caduta.
OK, hai chiarito. Come dicevo, in DAO mi pare sia (ho detto sia, non fosse)
un riferimento (col suo puntatore autonomo), non un duplicato vero e
proprio.

 copie." (da MSDN)
DAO o ADO?
Mi auto-rispondo: Anche in DAO (quindi ritiro tutto). Il Close dell'uno non
inficia l'altro.