webForumDet fria alternativet

Anropa db på annan server?

4 svar · 249 visningar · startad av Pellefant

PellefantMedlem sedan maj 20023 372 inlägg
#1

Hej!

Kan man anropa(gärna med ett kodexempel :) en databas som ligger på en annan server än den där koden ligger. Jag har tänkt att lägga en databas på en annan server än där grundsidorna ligger därför att bara den ena stödjer CDONTS. (På den förstnämnda ligger också en databas).

(Access, ASP)

Tack på förhand.

Pellefant

PellefantMedlem sedan maj 20023 372 inlägg
#2

Funderade lite...tror det är enklast att infoga en hel sida från en annan server, då torde det bli mycket enklare.

trexter.comMedlem sedan apr. 20021 203 inlägg
#3

Hmm, jag är lite tveksam där. När man t.ex. ska öppna en databas så måste man ju skriva den fysiska sökvägen, det vill säga: c:\yada-yada osv. och inte http://yada-yada osv.

Men det är klart att om du kan skriva en fysisk sökväg till en annan server så borde det ju gå... är lite tveksam.
:q

ToonsterMedlem sedan feb. 20001 590 inlägg
#4

Är det en server i det lokala nätverket så är det inga större problem.
Lättast är det att skapa någon typ av datatjänst. Kolla in system DNS i ODBC i kontrollpanelen.

red.

Detta är det "rätta" sättet att använda en databas i en webbapplikation. Att ha databasen på en separat server ger många fördelar, inte minst säkerhetsmässigt.

/T

SPiNMedlem sedan mars 20007 896 inlägg
#5

Det låter ju som att du kan köra ASP på den andra servern också, och då är det inga större problem att ta sig runt problemet. Sätt upp en ASP-sida på servern med databasen, som fungerar som en sorts webservice. Du skickar data med antingen POST eller GET ( Förslagsvis med XMLHTTP-komponenten ) och tar emot den hämtade informationen.

Exempel;
http://www.dinServer.se/SidaMotDB.asp

<%
set objConnection = Server.CreateObject ( "ADODB.Connection" )
objConnection.Open "DSN=dinDSN"

If Request.QueryString ( "type" ) = "email" AND Request.QueryString ( "namn" ) <> "" Then
     set objRecordset = objConnection.Execute ( "SELECT email FROM tbl WHERE namn = '" & Request.QueryString ( "namn" ) & "'" )
     returnData = objRecordset ( "email" )

     objRecordset.Close
     set objRecordset = Nothing
ElseIf Request.QueryString ( "type" ) = "namn" AND Request.QueryString ( "email" ) <> "" Then
     set objRecordset = objConnection.Execute ( "SELECT namn FROM tbl WHERE email = '" & Request.QueryString ( "email" ) & "'" )
     returnData = objRecordset ( "namn" )

     objRecordset.Close
     set objRecordset = Nothing
Else
     returnData = "Tomt"
End If

objConnection.Close
set objConnection = Nothing

Response.Write returnData
%>

http://www.dinAndraServer.se/MinSida.asp

<%
set objHTTP = Server.CreateObject ( "Microsoft.XMLHTTP" )
objHTTP.Open "GET", "http://www.dinServer.se/SidaMotDB.asp?type=namn&email=enEmail@doman.se", False
objHTTP.Send
NamnTillhorandeEmail = objHTTP.responseText
Set objHTTP = Nothing

Response.Write NamnTillhorandeEmail
%>

Typ.

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)