Connettersi a 2 db contemporaneamente

max1850

Utente Attivo
8 Gen 2007
104
0
16
Cosenza
www.net-site.it
Salve. Mi spiego subito.
Nello stesso sito, per il momento in locale, ho 2 database in access a cui dovrei collegarmi per passare dei dati da uno all'altro, o meglio da una tabella ad un'altra, le quali risiedono in 2 db differenti.
E' possibile effettuare 2 connessioni contemporaneamente ed aprirle insieme, così da gestire con 1 query l'intero passaggio?

Ho scritto il seguente codice, ma non capisco come aprire le 2 connessioni contemporaneamente e come fare la query per questo passaggio dei dati.

<%
Dim conn
Set conn = Server.CreateObject ("ADODB.Connection")
str = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("/mdb-database/UTENTI.mdb")"
conn.Open str

Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "UPDATE ??? "
rs.Open sql, conn

rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
%>

La connessione che creo su è per 1 solo database. Come creo l'altra?

Grazie :)
Max!
 

lukeonweb

Utente Attivo
5 Mar 2003
5.177
10
38
43
Napoli
www.lucaruggiero.it
Max, "semplicemente", crea 2 volte l'oggetto Connection e l'oggetto Recordset.

Apri le due connessioni, prendi i dati dal database 1, inseriscili nel database 2, chiudi le due connessioni.

Tutto qui :)
 

max1850

Utente Attivo
8 Gen 2007
104
0
16
Cosenza
www.net-site.it
Max, "semplicemente", crea 2 volte l'oggetto Connection e l'oggetto Recordset.

Apri le due connessioni, prendi i dati dal database 1, inseriscili nel database 2, chiudi le due connessioni.

Tutto qui :)

Ciao Luke!
Ho provato già così tante volte..sbaglierò sicuramente qualcosa che non riesco a capire.
Posto qui una sintesi del codice:

<%
Dim conn, conn2
'creo i 2 oggetti
Set conn = Server.CreateObject ("ADODB.Connection")
Set conn2 = Server.CreateObject ("ADODB.Connection")

' usiamo i 2 dsn
str = "UTENTI"
str2 = "CLIENTI"

'apriamo le connessioni
conn.Open str
conn2.Open str2

Dim rs, rs2
'creo i 2 oggetti Recordset
Set rs = Server.CreateObject("ADODB.Recordset")
Set rs2 = Server.CreateObject("ADODB.Recordset")

sql = " ??? "
sql2 = " ??? "

'Eseguo le 2 query
rs.Open sql, conn
rs2.Open sql2, conn2

'chiudiamo e distruggiamo gli oggetti
rs.Close
Set rs = Nothing
rs2.Close
Set rs2 = Nothing

conn.Close
Set conn = Nothing
conn2.Close
Set conn2 = Nothing

%>

Non riesco a fare le 2 query. In pratica devo copiare la tabella2 in tabella1 che sono però in database diversi.
Mi fai un esempio di update? Ma non basta 1 sola query o ce ne vogliono 2?

Ciao
Max!
 
Ultima modifica:

lukeonweb

Utente Attivo
5 Mar 2003
5.177
10
38
43
Napoli
www.lucaruggiero.it
Provo a correggere il tuco codice:

HTML:
<%
Dim conn, conn2
Set conn = Server.CreateObject ("ADODB.Connection")
Set conn2 = Server.CreateObject ("ADODB.Connection")

str = "UTENTI"
str2 = "CLIENTI"

conn.Open str
conn2.Open str2

Dim rs
Set rs = Server.CreateObject("ADODB.Recordset") 

rs.Open "SELECT campo_testo, campo_numerico FROM tabella2", conn, 1
conn2.Execute("INSERT INTO tabella1 (campo_testo, campo_numerico) VALUES (('" & Replace(rs("campo_testo"), "'", "''") & ', " & rs("campo_numerico") & "))")
rs.Close
Set rs = Nothing

conn.Close 
Set conn = Nothing
conn2.Close 
Set conn2 = Nothing

%>

NON l'ho testato.

Ho ucciso il secondo Recordset che non ti serve ed ho aggiunto il cursore al primo Recordset in fase di lettura. Una volta letti di dati, usi il Recordset sui vari campi per eseguire la INSERT.

Fammi sapere se va.
 

max1850

Utente Attivo
8 Gen 2007
104
0
16
Cosenza
www.net-site.it
Ciao Luke!
Ho provato fin'ora e sono finalmente riuscito a far funzionare la query, modificandola perchè c'era un problema o di apici o di altro...
Ora è così:
conn2.Execute( "INSERT INTO Calciatori (Calciatore) VALUES (('" & Replace(rs("Nome"), "'", "''") & "' ))" )

e serve per inserire solo il campo di testo "Nome".
Il problema ora è che inserisce solo il campo Nome del primo record. A me serve inserire il campo Nome di tutti i records della tabella.
Come si fa?

Ciao
Max!
 
Ultima modifica:

lukeonweb

Utente Attivo
5 Mar 2003
5.177
10
38
43
Napoli
www.lucaruggiero.it
Eddai, un po di fantasia :)

rs.Open "SELECT campo_testo, campo_numerico FROM tabella2", conn, 1
While rs.EOF = False
' qui la insert come l'hai scritta tu
rs.MoveNext
Wend
rs.Close

Funge? ;)
 

max1850

Utente Attivo
8 Gen 2007
104
0
16
Cosenza
www.net-site.it
Eddai, un po di fantasia :)

rs.Open "SELECT campo_testo, campo_numerico FROM tabella2", conn, 1
While rs.EOF = False
' qui la insert come l'hai scritta tu
rs.MoveNext
Wend
rs.Close

Funge? ;)
Ah... pensavo ci fosse una query che copiasse la tabella tutta in 1 volta...
Funziona tutto! :fonzie:

Grazie dell'aiuto! Se non ci fossi tu... ;)
Ciao
Max!
 

max1850

Utente Attivo
8 Gen 2007
104
0
16
Cosenza
www.net-site.it

mickeycc

Nuovo Utente
27 Nov 2012
3
0
0
Salve, posso riprendere questa vecchia discussione? Il titolo è appropriato.
Gli esempi sotto riportati si riferiscono all'utilizzo di due DB con query diverse, ma se la query fosse unica?
Mi spego :

Codice:
SELECT (DB1.dbo.T_CORPO.C_UFF_SEGN) as comandoD, (DB1.dbo.T_CORPO.ANNO) as annoD, (DB1.dbo.T_CORPO.PROGRESSIVO) as numeroD, (DB2.dbo.T_CORPO.C_UFF_SEGN) as comandoV, (DB2.dbo.T_CORPO.ANNO) as annoV, (DB2.dbo.T_CORPO.PROGRESSIVO) as numeroV, (DB2.dbo.T_CORPO.RFRCNMBR_SDI) as rifSDI 
FROM DB1.dbo.T_CORPO, DB2.dbo.T_CORPO

WHERE DB1.dbo.T_CORPO.RFRCNMBR = DB2.dbo.T_CORPO.RFRCNMBR_SDI
AND DB1.dbo.T_CORPO.D_SEGN = DB2.dbo.T_CORPO.D_SEGN
AND DB1.dbo.T_CORPO.RFRCNMBR IN (SELECT DB2.dbo.T_CORPO.RFRCNMBR_SDI FROM DB2.dbo.T_CORPO WHERE DB2.dbo.T_CORPO.NOTA LIKE '%testodacercare%')

ora, pur creando due connessioni, quando arrivo qui :

objRs.Open myquery, ConnSQL

come gli dico che la connessione deve interessare entrambi i DB?
Altra cosa, per me è importante che l'utente che interroga i DB abbia solo diritti di lettura.

Grazie
 

mickeycc

Nuovo Utente
27 Nov 2012
3
0
0
Beh, altrove mi è stato detto che non è possibile connettersi contemporaneamente a due DB, ma il mio problema è che il risultato della prima query mi serve per costruire la seconda, quindi ho fatto così:

Codice:
'**********************************************
' COSTRUISCO LA QUERY
'**********************************************
myquery = "SELECT (DB2.dbo.TABELLAx.C_UFF_SEGN) as ufficioV, (DB2.dbo.TABELLAx.ANNO) as annoV, (DB2.dbo.TABELLAx.PROGRESSIVO) as numeroV, (DB2.dbo.TABELLAx.RFRCNMBR_SDI) as rifSDI, (DB2.dbo.TABELLAx.D_SEGN) as dataV FROM DB2.dbo.TABELLAx WHERE "
'**********************************************
' Mi connetto ai DB
'**********************************************
Set ConnSQLD = Server.CreateObject ("ADODB.Connection")
Set ConnSQLV = Server.CreateObject ("ADODB.Connection")
ConnSQLD = "Provider=sqloledb;Data Source="&ipServer&";Initial Catalog=DB1;User Id="&UserId&";Password="&Password&";"
ConnSQLV = "Provider=sqloledb;Data Source="&ipServer&";Initial Catalog=DB2;User Id="&UserId&";Password="&Password&";"
'**********************************************
'collegamento ai DB
Set objRs = Server.CreateObject("ADODB.Recordset")
Set objRs2 = Server.CreateObject("ADODB.Recordset")
objRs.Open myquery, ConnSQLV
While objRs.EOF = false
query2 = "SELECT (DB1.dbo.TABELLAx.C_UFF_SEGN) as ufficioD, (DB1.dbo.TABELLAx.ANNO) as annoD, (DB1.dbo.TABELLAx.PROGRESSIVO) as numeroD FROM DB1.dbo.TABELLAx WHERE DB1.dbo.TABELLAx.RFRCNMBR = '" & objRs("rifSDI") & "'"

objRs2.Open query2, ConnSQLD
'**********************************************
'valorizzo le variabili 
DATO1 = objRs("ufficioV")
DATO2 = objRS("annoV")
DATO3 = objRs("numeroV")
DATO4V = DATO1 & " " & DATO2 & " " & DATO3
While objRs2.EOF = false

'valorizzo le variabili 
DATO1 = objRs2("ufficioD")
DATO2 = objRS2("annoD")
DATO3 = objRs2("numeroD")
DATO4D = DATO1 & " " & DATO2 & " " & DATO3
'**********************************************
' STAMPO RISULTATI
'**********************************************
%>
<br>
<p> <b><font size="2">- <%=DATO4V%>           <--->    <%=DATO4D%></font></b> 
<%
'**********************************************
objRs2.MoveNext
Wend
objRS2.Close()
objRs.MoveNext
Wend
' chiudo e distruggo tutto
Set objRS2 = Nothing
objRS.Close()
Set objRS = Nothing
'**********************************************
 
Discussioni simili
Autore Titolo Forum Risposte Data
spider81man Connettersi ad un DB ed inserire dati con Javascript Javascript 3
E IP Camera p2p connettersi da IPad fuori casa IP Cam e Videosorveglianza 10
DaniVersa Connettersi Telecamere da Smartphone IP Cam e Videosorveglianza 7
MarcoGrazia [PHP][PDO] Come connettersi al database Snippet PHP 0
asevenx Impossibile connettersi al database - mysql system error: 111 MySQL 3
A Come utilizzare cURL per connettersi a uno streaming? PHP 0
matrobriva Impossibile connettersi al server localhost. PHP 9
emanuelevt connettersi correttamente al db mysql PHP 17
max1850 Connettersi ad un db SQL Server esterno Classic ASP 5
B Realizzare un Feed RSS (2a parte): connettersi ad un file RSS remoto Classic ASP 4
max1850 Connettersi ad un db esterno con user e passw Classic ASP 4
O [vb6 e/o c++] connettersi a db access onlined a locale C/C++ 0
A [Javascript] Scrittura su più campi contemporaneamente Javascript 19
Gabriele15497514 php testo errato durante la lettura del file txt quando lo script viene eseguito contemporaneamente PHP 3
W [C#] Eseguire contemporaneamente tutti i Thresad su "Multithread" .NET Framework 0
T creare due tabelle contemporaneamente Database 5
L Jquery: animate() su 2 div contemporaneamente jQuery 1
F devo aprire due pagine asp contemporaneamente Classic ASP 1
elpirata Problema Salva e Stampa contemporaneamente PHP 7
filippino Trova e sostituisci codici html su più file contemporaneamente HTML e CSS 4
Trapano Variare più record contemporaneamente!!! PHP 1
IImanuII modifica di più record contemporaneamente PHP 39
I upload di piu file contemporaneamente PHP 1
P Ordinare e impaginare una tabella contemporaneamente Javascript 1
G contemporaneamente in piu campi testo lo stesso valore Javascript 16
D [Hosting] avere a disposizione piu connessioni contemporaneamente al db Hosting 3
helpdesk Recupero acquisti e anagrafico cliente contemporaneamente PHP 5
SolidSnake4 salvare più descrizioni contemporaneamente PHP 1
P Non funzionano contemporaneamente Javascript 0
T [PHP] Form php + invio foto contemporaneamente PHP 1
D comandare più clip contemporaneamente Flash 2

Discussioni simili