在精华区看到用xmlhttp获取服务器上的txt数据库的方法,但我不是很明白,xmlhttp是不是就是说访问了一个xml文件?我们这里就是吧?
那么能不能就是通过http协议访问呢?
或者vb能不能和一个特定的asp页面交换信息呢?我知道如何用vb给asp页面发送信息,但是如何接受它的信息呢?不知道这样的想法可不可能实现,因为我们实际上并没有打开这个asp页面,这对于asp来说,算作或者说能够执行么?
有没有什么别的方法,能允许我的ado在知道数据服务器的网址,或者ip地址的时候,能连接上特定位置的数据库,然后就能像本地机一样读取和写入数据了。
麻烦哪位大虾给看看
那么能不能就是通过http协议访问呢?
或者vb能不能和一个特定的asp页面交换信息呢?我知道如何用vb给asp页面发送信息,但是如何接受它的信息呢?不知道这样的想法可不可能实现,因为我们实际上并没有打开这个asp页面,这对于asp来说,算作或者说能够执行么?
有没有什么别的方法,能允许我的ado在知道数据服务器的网址,或者ip地址的时候,能连接上特定位置的数据库,然后就能像本地机一样读取和写入数据了。
麻烦哪位大虾给看看
即分成三层结构:VB〈—〉COM+〈—〉HTML,用COM+很方便,你可实现你的功能;但是ADO好像不行,不能实现象你所说的功能。至于COM+,它好用但是不很好学(我认为)。你看着办。
不能提供你有用的信息,不好意思。
小、快捷、强健,可以访问任何32位ODBC数据源,如SQL Server和
Oracle数据库,是访问远程数据库的更新更高级的工具。----使用RDO的一般方法如下。----先声明变量:Public con As rdoConnection, res As rdoResultset----然后初始化rdoEngine,设置用户和口令等缺省参数; With rdoEngine
.rdoDefaultUser = "sa" '用户为 sa
.rdoDefaultPassword = "pass" '口令为 pass
.rdoDefaultCursorDriver = rdUseServer
.rdoDefaultLoginTimeout = 15
End With----再连接到要访问的远程数据库(可使用DSN Connection和DSN-Less
Connection)。----使用DSN Connection举例(连接服务器SERVER上的数据库hotel):Set con = rdoEnvironments(0).OpenConnection
("hotel", rdDriverNoPrompt, False)----使用DSN-Less Connection举例(连接服务器SERVER上的数据库
hotel):Set con = rdoEnvironments(0).OpenConnection
("", rdDriverNoPrompt, False, _
"driver={SQL Server};
server=SERVER; database=hotel")----建立连接后,既可使用OpenResultset方法执行查询并处理结果
集,又可使用Execute方法执行包括数据定义和数据操作在内的动
作查询。例如:Set res = con.OpenResultset
("SELECT * FROM menu", rdOpenStatic)
con.Execute "CREATE VIEW menu_view AS SELECT 代码,
菜名FROM menu", rdExecDirect----RDO最强大和最重要的特性之一是:它可以查询和处理由存储
过程返回的结果,无论它有多么复杂。----除RDO外,还可使用RDC访问远程数据库。----远程数据控件(RDC)与数据控件(DC)类似,不同之处是RDC使用
RDO连接到ODBC驱动程序管理器,而DC则使用DAO连接到Jet数据库
引擎。利用RDO和RDC,无需使用Jet引擎就可以访问ODBC数据源。这
样,在访问远程数据库时,可以获得更好的性能和更大的灵活性。----远程数据控件MSRDC使用举例如下。 Connect: driver={SQL Server}; server=SERVER; database=hotel
DataSourceName:
SQL: SELECT * FROM menu
UserName: sa
Password: pass
CursorDriver: 3-rdUseClient----可以使用RDC执行许多简单的远程数据访问操作,不需编写任
何代码,只要填写有关项就可以了,使用起来很方便。但应注意,
除非在设计时禁止并只在需要时启动RDC,否则它至少将消耗一
个远程数据库连接。在远程数据库连接资源有限或要求很高效的
情况下,宜慎用、少用RDC。这种情况下,应尽可能考虑使用RDO,
并使用存储过程(预编译好的SQL语句)。----最后还应注意,只有32位操作系统(如WindowsNT或Windows95),
才能支持RDO和RDC。RDO和RDC也只能用于访问32位ODBC数据源。
RDS是ADO的同胞兄弟,参见ADO帮助引用 Microsoft Remote Data Services x.x Library
引用 ADODim DF As Object
Dim strServer As String
Dim strConnect As String
Dim strSQL As String
Dim objADORs As Recordset
Dim ds As New DataSpace
Dim k As String
Dim i As Integer
strServer = "http://9zp.com"
strConnect = "Data Source=hzn;"
strSQL = "Select * from parts"
Set DF = ds.CreateObject("RDSServer.DataFactory", strServer)
Set objADORs = DF.Query(strConnect, strSQL)
For i = 0 To objADORs.Fields.Count - 1
k = k & objADORs.Fields(i).Name & Chr(10)
Next i
MsgBox k
MsgBox objADORs.Fields(0)
objADORs.Fields(0) = "改变这几个字试试"
DF.SubmitChanges strConnect, objADORs
MsgBox objADORs.Fields(0)
远程数据传送方法的讨论
之前做的一些系统中都涉及将本地数据上传到远程数据库服务器,或者将远程数据库服务器的数据下载的本地,都不知道用那种方式实现更方便,更安全
一种是用这样的方式实现
在远程服务器写一个ASP文件接收数据如: <% If Request.ServerVariables("REQUEST_METHOD")="POST" Then
ON ERROR RESUME NEXT
Dim AttendArray
Dim ResStr
Set xmldom=Server.CreateObject("Microsoft.XMLDOM")
Set Obj=Server.CreateObject("SAS.SHIFT")
xmldom.load(Request)
Set Rs=Server.CreateObject("ADODB.Recordset")
Rs.Open xmldom
AttendArray=Rs.GetRows
If IsArray(AttendArray) Then
ResStr=Obj.AddAttendRecord(AttendArray)
End If
If Err.number =0 Then
Response.Write "OK"
Set xmlResult=Server.CreateObject("Microsoft.XMLDOM")
xmlResult.save(Response)
Set xmlResult=Nothing
Else
Response.Write "NO"
Set xmlResult=Server.CreateObject("Microsoft.XMLDOM")
xmlResult.save(Response)
Set xmlResult=Nothing
End If
End If
%>
客户端这样写的 Dim Url As String Url = "http://"; & ServerName & "/shift/AddAttendRecord.asp"
Dim Conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim Strm As ADODB.Stream
Dim XMLHttp As XMLHTTPRequest
Dim ObjSas As InstantPassCls.clsSAS
Dim AttendArray As Variant
Dim i As Integer
Set rs = New ADODB.Recordset
Set ObjSas = New InstantPassCls.clsSAS
AttendArray = ObjSas.GetUploadRecord
If IsArray(AttendArray) Then
With rs.Fields
.Append "StaffNo", adBSTR
.Append "Time", adBSTR
.Append "AttendType", adBSTR
End With
rs.Open
With rs
For i = 0 To UBound(AttendArray, 2)
.AddNew
.Fields("StaffNO") = AttendArray(0, i)
.Fields("Time") = AttendArray(1, i)
.Fields("AttendType") = AttendArray(2, i)
.Update
Next i
End With
Set Strm = New ADODB.Stream
rs.Save Strm, adPersistXML
Set XMLHttp = New XMLHTTPRequest
XMLHttp.Open "POST", Url, False
XMLHttp.send Strm.ReadText
If Err.Number = 0 Then
UPloadData = XMLHttp.responseText
Sleep (10000)
'If Left(UPloadData, 2) = "NO" Then
If InStr(1, UPloadData, "NO") > 0 Then
UPloadData = LoadResString(5038)
WriteLog 4, "Upload data failed"
End If
'If Left(UPloadData, 2) = "OK" Then
If InStr(1, UPloadData, "OK") > 0 Then
ObjSas.MarkRecord
WriteLog 4, "Upload data success"
UPloadData = LoadResString(5037)
End If
Else
UPloadData = LoadResString(5036)
WriteLog 4, "Upload data failed"
End If
Else
UPloadData = LoadResString(5035)
End If
Set ObjSas = Nothing
Set rs = Nothing