Non è detto. Ho combattuto a lungo con la questione e ho realizzato uno script che, con i dati presenti su una tabella presente su un server in un dato dominio (per quanto riguarda il tuo problema, questa potrebbe essere la tabella del database locale.............), aggiorna un'altra tabella presente su un altro server su un altro dominio.
E' chiaro che devi avere accesso come amministratore ad entrambi i domini.
Lo script deriva da quello che avevo postato all'inizio. Ora sono diventati due.
Sul primo server:
codice:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Server.ScriptTimeout = 300
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
prossimo = request.querystring("prossimo")
'Stringa per la connessione
cString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database/marco.mdb")
'creo e apro la connessione
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.Open cstring
'creo e apro il primo recordset, con i dati da utilizzare per l'aggiornamento
set rs1 = server.createobject("ADODB.recordset")
sql1 = "select * from prova1"
rs1.open sql1, objconn
if (isnull(prossimo) AND cstr(prossimo)="") then
rs1.movefirst
else
rs1.move(prossimo)
end if
if not rs1.eof then
id = rs1("id")
response.write("Prossimo = "&prossimo&"
")
response.write(id)
indirizzo = "http://www.lamaisonservice.it/utilities/aggiorna.asp?id="&id
for each campo in rs1.fields
if campo.name<>"id" then
nomecampo = campo.name
valorecampo = campo.value
indirizzo = indirizzo&"&"&nomecampo&"="&valorecampo
end if
next
'chiudo e distruggo recordset e connessione
rs1.close
set rs1 = nothing
objConn.close
set objconn=nothing
response.redirect(indirizzo)
end if
'notifico che la procedura è andata a buon fine
response.write("
")
response.write("<div align='center'>Aggiornamento effettuato!</div>")
%>
</body>
</html>
Sul secondo server:
codice:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Server.ScriptTimeout = 300
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
id = request.querystring("id")
'Stringa per la connessione
cString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database/marco.mdb")
'creo e apro la connessione
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.Open cstring
set rs2 = server.createobject("ADODB.recordset") 'creo il secondo recordset, sulla tabella da aggiornare
sql2 = "select * from prova1 where id = '"&id&"'" '...cerco il record corrispondente nella seconda tabella
rs2.open sql2, objconn 'apro il secondo recordset
if rs2.eof then 'se il record non esiste nella seconda tabella.......
'.....lo creo
sql3 = "insert into prova1 (id) values ('"&id&"')"
objconn.execute sql3
end if
rs2.close 'chiudo il secondo recordset....
set rs2 = nothing 'distruggo il secondo recordset
qs = request.servervariables("QUERY_STRING")
dati = split(qs, "&")
for i = 1 to Ubound(dati)
nomecampo = left(dati(i), (instr(dati(i), "=")-1))
valorecampo = mid(dati(i), (instr(dati(i), "=")+1))
sql4 = "update prova1 set "&nomecampo&"='"&valorecampo&"' where id='"&id&"'"
objconn.execute sql4
next
'chiudo e distruggo la prima connessione
objConn.close
set objconn=nothing
tanga=id
response.redirect("http://www.lamaisonservice.com/utilities/aggiorna.asp?prossimo="&tanga&"")
%>
</body>
</html>
La cosa è un po' complicata: lo script legge uno per uno i records della prima tabella e poi trasferisce i dati via querystring al secondo database con un response.redirect.
Le due tabelle hanno la stessa struttura.
La tabella con i dati da usare per l'aggiornamento è questa
Quella da aggiornare con i dati della prima è questa (naturalmente è una copia, visto che, dopo fatto girare lo script una volta, le due tabelle sono diventate identiche. Come si vede, le due si trovano su domini diversi.
Per l'aggiornamento non faccio altro che visitare questa pagina , cioè la prima delle due che ho postato.
Forse si piò fare di meglio e di più, ma questo è un modo..............