Newsgroup: it.comp.www.asp
Titolo: [neofita] Pagina con connessione a due DB

Buongiorno a tutti.
Premetto che il mio problema č stupido... talmente stupido che non lo
vedo!!!!
Apro due connessioni a due DB e quando vado a chiudere la seconda aperta ho
l'errore "L'operazione non č consentita se l'oggetto č chiuso."
Questo il codice:
-----------------------------------------------------------------
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source =
......primo.mdb")
Set objRs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT ........"
set objRs = objConn.Execute(sql)
Do while NOT objRs.EOF
  Set objConn1 = Server.CreateObject("ADODB.Connection")
  objConn1.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source =
....secondo.mdb")
  Set objRs1 = Server.CreateObject("ADODB.Recordset")
  strsql = "INSERT INTO ..........."
  '    set objRs1 = objConn1.Execute (strsql)
    objRs1.Close
    Set objRs1 = Nothing
    objConn1.Close
    Set objConn1 = Nothing
  objRs.Movenext
Loop
objRs.Close
Set objRs = Nothing
objConn.Close
Set objConn = Nothing
-----------------------------------------------------------------
Grazie !!!!
Enea.

 Enea.
Gli oggetti recordset non vanno chiusi con Close quando dipendono da una
connessione aperta con adodb.connection. Cancella quelle righe e dovrebbe
andare tutto a posto!
Ciao
-- 
AZ [Microsoft .NET MVP]
.NET Community: 
http://www.aspitalia.com/
Il mio blog: 
http://blogs.aspitalia.com/az/
Microsoft MVP: 
http://italy.mvps.org/
Sito personale: 
http://ciclismo.sitiasp.it/

 set objRs = objConn.Execute(sql)
Con execute non apri la connessione, ma esegui solo la stringa SQL, quindi
in chiusura non trovi nulla aperto...
Dovresti usare objConn.Open(sql)

 Ciao
Ho gia provato ed ho visto che funziona, mi rimane un dubbio: le connessioni
non andrebbero chiuse quanto prima? (...domanda da ignorante...)
Ciao e GRAZIE 1000 !!!
Enea

 andare tutto a posto!
Oltre a questo, non capisco perchè creare gli oggetti connessione
(objConn1) e Recordset(objRs1), aprirli, operare, chiuderli e 
annullarli all'interno di un loop!
Li crei prima, li usi nel loop, li chiudi dopo; la connessione puà 
anche essere aperta prima, e chiusa dopo.
Inoltre, non capisco l'utilità di usare un recordset solo per fare un 
INSERT INTO, che non ritorna record
Ancora, se crei e definisci l'oggetto Recordset, lo puoi aprire con il 
metodo Open, e se ti serve, puoi anche specificare cursori, locktype 
eccetera. 
Usando invece il metodo set rsconn.execute(SQL) non serve creare 
l'oggetto recordset.
Set objConn  Server.CreateObject("ADODB.Connection")


Il mio uso di ASP ad oggi è "brutale", nel senso che ho solo conoscenze
superficiali
e uso che lo utilizzo quindi come userei un martello !!!  : ))
Grazie per la tua risposta... mi ha messo sulla buona strada anche per
capire il
perchè di tanti srtani problemi che accadono.
Ciao.
Enea.

Set objConn =erver.CreateObject("ADODB.Connection")
Grazie per le tue precisazioni: onestamente capisco poco su come
iteragire in maniera corretto con DB usando ASP... ma ci sto
provando!!  : ))
Grrazie ancora.
Enea

 provando!!  : ))
Va benissimo cosě, continua a darci dentro.
Magari, anche se forse č piů difficile, passa ad 
ASP.NET
, sai che ormai 
iniziare con ASP sarebbe iniziare con una *tecnologia* superata.
Cmq, sempre, ragiona al risparmio: come posso far risparmiare risorse, 
pur avendo una situazione robusta?

 Enea


Io sto provando come dici tu a passare ad 
ASP.NET
, ma anche avendo un
manuale della casa (Apogeo) sulla quale ho imparato ASP, non riesco ad
entrare nel meccanismo.
E poi dovrei buttare via tutto quello che ho fatto in ASp per i vecchi
lavori.
Come faccio?

 Come faccio?
Tutto quello che hai imparato con l'ASP ti sarà ancora utile.
