Come prima cosa trovo davvero strano che in VB.NET usi ADODB invece di ADO.NET.
Tra l'altro mescolando i due!!!![]()
![]()
Ma davvero funziona? Per me non dovrebbe nemmeno funzionare!![]()
Comunque, gli oggetti di ADODB vanno instanziati in modo corretto, non come fai tu.
Riporto quanto scritto da William R. Vaughn in
"Accesso ai Dati con Visual Basic" (APress - Mondadori Informatica)
pag. 27
...
Ma come si creano gli oggetti da codice? Troppi esempi (1) mostrano questa sintassi molto comune:
Dim cn As New ADODB.Connection
Quando si usa questa sintassi, si costringe Visual Basic ad aggiungere un sovraccarico di codice per ciascun oggetto, ogni volta che l'oggetto stesso viene referenziato, infatti "ogni volta" che Visual Basic incontra l'oggetto "cn", il compilatore aggiunge:
If cn Is Nothing Then Set cn = New ADODB.Connection
(1) L'autore stesso confessa di aver usato in passato questa sintassi non conoscendone l'impatto e ne chiede scusa!
Stessa cosa viene ripetuta nel cap.6 pag. 136, riguardo al Recordset.
A tal proposito, è bene tener presente che quando si usa la sintassi sbagliata, ovvero
Dim rs As New ADODB.Recordset
se poi si va a testare se l'oggetto rs è Nothing si avrà, logicamente, che è False.
Ti segnalo anche un paio questi link, i primi che mi sono capitati 'a tiro':
Why not to use the "Dim myObj as New Object" construct
http://www.tek-tips.com/faqs.cfm?fid=6008
Compare the speed of using Dim versus Dim As New
http://www.vb-helper.com/howto_test_...new_speed.html
Come ultima cosa:
Affermare che "c'è qualcosa che non torna" non è che aiuta un granchè a capire alcunchè![]()