怎么通过http协议联接数据库呢?或者怎么样远程联接数据库?

apple_001 2003-08-05 12:17:20
在精华区看到用xmlhttp获取服务器上的txt数据库的方法,但我不是很明白,xmlhttp是不是就是说访问了一个xml文件?我们这里就是吧?
那么能不能就是通过http协议访问呢?
或者vb能不能和一个特定的asp页面交换信息呢?我知道如何用vb给asp页面发送信息,但是如何接受它的信息呢?不知道这样的想法可不可能实现,因为我们实际上并没有打开这个asp页面,这对于asp来说,算作或者说能够执行么?
有没有什么别的方法,能允许我的ado在知道数据服务器的网址,或者ip地址的时候,能连接上特定位置的数据库,然后就能像本地机一样读取和写入数据了。
麻烦哪位大虾给看看
...全文
278 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
online 2003-11-22
  • 打赏
  • 举报
回复
希望对你又帮助
远程数据传送方法的讨论
之前做的一些系统中都涉及将本地数据上传到远程数据库服务器,或者将远程数据库服务器的数据下载的本地,都不知道用那种方式实现更方便,更安全
一种是用这样的方式实现
在远程服务器写一个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

luohaorj 2003-11-22
  • 打赏
  • 举报
回复
up
imur 2003-11-22
  • 打赏
  • 举报
回复
学习!
since1990 2003-11-21
  • 打赏
  • 举报
回复
up
hhjjhjhj 2003-11-21
  • 打赏
  • 举报
回复
试试下面的(我的服务器9zp.com上先设置好了RDS服务,如果RDS服务关了,请到http://office.9zp.com联系)
RDS是ADO的同胞兄弟,参见ADO帮助

引用 Microsoft Remote Data Services x.x Library
引用 ADO

Dim 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)
online 2003-11-21
  • 打赏
  • 举报
回复
能允许我的ado在知道数据服务器的网址,或者ip地址的时候,能连接上特定位置的数据库,然后就能像本地机一样读取和写入数据了。

RDO和ADO都可以
since1990 2003-08-06
  • 打赏
  • 举报
回复
帮你 up
rainstormmaster 2003-08-06
  • 打赏
  • 举报
回复
远程数据库的访问

----远程数据对象(RDO)是VB 5.0中基于ODBC API的对象模型,它短
小、快捷、强健,可以访问任何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数据源。
since1990 2003-08-06
  • 打赏
  • 举报
回复
帮你up
wuhanfengchao 2003-08-06
  • 打赏
  • 举报
回复
你的问题比较难呀!COM+你去买书看吧,不一定能看懂哟!但是使用COM+简单功能是可以的,你要装2000S版,找到“管理工具”里“组件服务”,你慢慢看吧!
wuhanfengchao 2003-08-05
  • 打赏
  • 举报
回复
你可采用COM或COM+。
即分成三层结构:VB〈—〉COM+〈—〉HTML,用COM+很方便,你可实现你的功能;但是ADO好像不行,不能实现象你所说的功能。至于COM+,它好用但是不很好学(我认为)。你看着办。
不能提供你有用的信息,不好意思。
apple_001 2003-08-05
  • 打赏
  • 举报
回复
com+的东西能给指条道么?怎么开始,有没有好的入门的东西,不管怎么说也要谢谢你

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧