Vai al contenuto

[ASP-SQL] unica query su due database contemporaneamente


Messaggi raccomandati

Salve, sono in difficoltà con l'utilizzo di una query SQL in una pagina ASP.

Testata con Query Analyzer, la query fa il suo lavoro egregiamente (o quasi, dovrei affinare la logica, ma il risultato per ora è accettabile).

 

Il problema mi si pone quando la porto nella mia pagina ASP poichè non so come utilizzare due connessioni contemporaneamente.

 

Ho trovato soluzioni che si riferivano sempre a due query separate.

Bando alle ciance, ecco la query :

 

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

Link al commento
Condividi su altri siti

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ì:

'**********************************************
' 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=[b]DB1[/b];User Id="&UserId&";Password="&Password&";"
ConnSQLV = "Provider=sqloledb;Data Source="&ipServer&";Initial Catalog=[b]DB2[/b];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 = '" & [b]objRs("rifSDI")[/b] & "'"

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
'**********************************************

Link al commento
Condividi su altri siti

in informatica ed in elettronica una sola CPU NON può fare 2 cose contemporaneamente, nemmeno il multitasking è un vero multitasking. Comunque detto questo ti conviene aprire una connessione ad un db, eseguire la query e poi eseguire la seconda query nel secondo db, cosa posso dirti più di così?
Link al commento
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un membro per lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

Giochi in Uscita



  • Community Hive Community Hive

    Community Hive allows you to follow your favorite communities all in one place.

    Follow on Community Hive
  • Utenti

    Non ci sono membri da mostrare

×
×
  • Crea Nuovo...