Newsgroup: it.comp.lang.visual-basic
Titolo: URGENTE da ACCESS a SQL

Utilizzo le seguenti istruzioni per attingere da un database ACCESS i dati
di una tabella ACCESS 2000 contenente una lista di commerciali!
Set dbsCline2002 = OpenDatabase(VarPath +"\CLine2002.mdb")
        Set tabCommerciali = dbsCline2002.OpenRecordset( _
        "SELECT NomeCognome FROM Commerciali " & _
        "ORDER BY NomeCognome", dbOpenSnapshot)
Do
 If tabCommerciali.EOF Then Exit Do
 ListaCommerciale.AddItem (tabCommerciali("NomeCognome"))
 tabCommerciali.MoveNext
Loop
tabCommerciali.Close
dbsCline2002.Close
Ho intenzione di caricare i dati del database in SQL!
Come posso fare puntare alle mie tabelle server SQL mantenedo fisse le
seguenti righe, magari puntando a un DSN ODBC?
Senza ovviamente chreare un database con tabelle collegate????
....?
....?
Do
 If tabCommerciali.EOF Then Exit Do
 ListaCommerciale.AddItem (tabCommerciali("NomeCognome"))
 tabCommerciali.MoveNext
Loop
tabCommerciali.Close
dbsCline2002.Close

 di una tabella ACCESS 2000 contenente una lista di commerciali!
[cut]
Comincia a buttare il codice Dao e usare Ado.
(sperando che il padrone di java non stia leggendo...  :-PPP )
Poi riparliamo di trasferire a Sql (Server suppongo...).
ciao
ugo

codice Dao e CODICE Ado ?
Cioè, invece di:
Set dbsCline2002 = OpenDatabase(VarPath +"\CLine2002.mdb")
        Set tabCommerciali = dbsCline2002.OpenRecordset( _
        "SELECT NomeCognome FROM Commerciali " & _
        "ORDER BY NomeCognome", dbOpenSnapshot)
Do
 If tabCommerciali.EOF Then Exit Do
 ListaCommerciale.AddItem (tabCommerciali("NomeCognome"))
 tabCommerciali.MoveNext
Loop
tabCommerciali.Close
dbsCline2002.Close
Fai:
dim conMyDb as new adodb.connection
dim rs as new adodb.recordset
conMyDb.open  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & varpath &
"\CLine2002.mdb"
with rs
    .cursorlocation = aduseclient
    .open "SELECT NomeCognome FROM Commerciali ORDER BY NomeCognome",
conMydb, adopenstatic, adlockreadonly
    if .recordcount > 0 then
        .movefirst
        do while not .eof
             ListaCommerciale.AddItem (rs.fields!NomeCognome)
            .movenext
        loop
    endif
    .close
end with
conmydb.close
set rs = nothing
set conmydb = nothing
(tanto per mantenere una sintassi simile a quella che hai usato)
ciao
ugo
-----------------------------------
Links:
Sito Comune: 
www.it-lang-vb.net
MSDN: 
msdn.microsoft.com

 set conmydb = nothing
piccolo dubbio sintattico mio:
io di solito faccio
    rs.close: set rs=nothing
    dbclose:set db=nothing
non e' una ridondanza ?
cioe', nel momento in cui annullo l'oggetto db, quello non si tira dietro
rs, chiudendolo nel caso serva ? o i due oggetti sono del tutto indipendenti
?
nel dubbio annullo tutto, ma mi sembra di scrivere righe inutili.
grazie, a.

 nel dubbio annullo tutto, ma mi sembra di scrivere righe inutili.
No, non sono inutili: si vede l'effetto di tanti anni di Dao...  :-PPPPP
In effetti in Dao esisteva una gerarchia stretta tra oggetto db e oggetto
recordset.
La destroy del primo forzava effettivamente una destroy anche del secondo,
anche se, per pulizia stilistica (e tranquillità psicologica!) anche lì
eseguivo
un set = nothing anche dell'oggetto recordset.
In Ado l'oggetto recordset, pur dipendendo gerarchicamente dalla connection,
non ne è "figlio", tant'è vero che è possibile utilizzare anche recordset
disconnessi.
E' perciò necessario provvedere ad una destroy esplicita dell'oggetto
indipendente
da quella della connection relativa.


 No, non sono inutili: si vede l'effetto di tanti anni di Dao...  :-PPPPP
appunto: codice ineccepibile e portabile anche su pseudosistemi di
accesso -- ehm -- disconnessi :)
grazie, a.

 Cioč, invece di:



Provider=SQLOLEDB.1;Password=mypwd;Persist Security Info=True;User
ID=myuserid;Initial Catalog=mydatabase;Data Source=mysqlserver;Connect
Timeout=30;Auto Translate=True;Packet Size=8192
...ma...
non è il caso di studiacchiare qualcosina, prima di passare a Sql-Server?
:-)


 ha scritto nel messaggio
news:a5j81r$7l3p0$1...@ID-96367.news.dfncis.de...
