ADO 2.5 (oder höher) erlaubt es Ihnen, ein auf XML basierendes ADO Recordset aus einer ASP-Datei über HTTP zu öffnen. Dieses Feature nutzt kein RDS.
Um Einträge aus einer entfernten Datenbank zu holen:
1 2 |
oRs.Open "http://myServer/AuthorsGetByState.asp?state=CA",, _ adOpenStatic, adLockBatchOptimistic |
(der Inhalt der Datei AuthorsGetByState.asp wird unten angezeigt)
Um Änderungen zu speichern:
1 2 3 |
' Save Recordset into Stream Set oStm = New ADODB.Stream oRs.Save oStm, adPersistXML |
1 2 3 4 |
' Use MSXML's XMLHTTP object to open ASP Set oXMLHTTP = New MSXML2.XMLHTTP30 oXMLHTTP.Open "POST", "http://myServerName/AuthorsSave.asp" oXMLHTTP.Send oStm.ReadText |
1 2 3 4 |
' If an error occurred If oXMLHTTP.Status = 500 Then Debug.Print oXMLHTTP.statusText End If |
(der Inhalt der Datei AuthorsSave.asp wird unten angezeigt)
AuthorsGetByState.asp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
Dim oConn Dim oRs Dim sSQL Dim sState On Error Resume Next Const adPersistXML = 1 Const adStateOpen = 1 Const adOpenStatic = 3 Const adLockBatchOptimistic = 4 Const adCmdText = 1 ' Eine neue Verbindung erstellen und öffnen Set oConn = Server.CreateObject("ADODB.Connection") oConn.Open "provider=sqloledb;" & _ "data source=(local);" & _ "initial catalog=pubs;" & _ "user id=myUsername;" & _ "password=myPassword;" If Err.Number <> 0 Then Response.Status = "500 " & Err.Source & ": " & Err.Description Response.End End If ' Erstellen und Öffnen eines veränderbaren Recordsets Set oRs = Server.CreateObject("ADODB.Recordset") sState = Request.QueryString("state") & "" If Len(sState) Then sSQL = "Select * From Authors Where State = '" & sState & "'" Else sSQL = "Select * From Authors" End If oRs.Open sSQL, oConn, adOpenStatic, adLockBatchOptimistic, adCmdText If Err.Number <> 0 Then Response.Status = "500 " & Err.Source & ": " & Err.Description Response.End End If ' ' Speichert Daten in ein Response Object (IIS4.0) ' Set oStream = Server.CreateObject("ADODB.Stream") ' oRs.Save oStream, adPersistXML ' Response.Write oStream.ReadText ' Speichert Daten in ein Respone Object (IIS5.0) Response.ContentType = "text/xml" oRs.Save Response, adPersistXML If Err.Number <> 0 Then Response.Status = "500 " & Err.Source & ": " & Err.Description Response.End End If ' Räumt auf Set oRs = Nothing If oConn.State = adStateOpen Then oConn.Close End If Set oConn = Nothing |
AuthorsSave.asp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
Dim oConn Dim oRs On Error Resume Next ' Erstellen und Öffnen einer neuen Verbindung Set oConn = Server.CreateObject("ADODB.Connection") oConn.Open "provider=sqloledb;" & _ "data source=(local);" & _ "initial catalog=pubs;" & _ "user id=myUsername;" & _ "password=myPassword;" If Err.Number <> 0 Then Response.Status = "500 " & Err.Source & ": " & Err.Description Response.End End If ' Erstellen und Öffnen eines neuen Recordset Set oRs = Server.CreateObject("ADODB.Recordset") oRs.Open Request If Err.Number <> 0 Then Response.Status = "500 " & Err.Source & ": " & Err.Description Response.End End If ' Aktualisiert die Datenbank oRs.ActiveConnection = oConn oRs.UpdateBatch If Err.Number <> 0 Then Response.Status = "500 " & Err.Source & ": " & Err.Description Response.End End If ' Räumt auf Set oRs = Nothing If oConn.State = adStateOpen Then oConn.Close End If Set oConn = Nothing |