用VB的RDS进行数据存取

123for 2000-05-25 09:16:00
各位高手:我按王国荣的《asp & web 数据库》一书写以下代码:(事先在VB6.0的工程引用中引用了RDS Service 2.1 Library 和ADOR 2.1 Library.
运行调试时总是提示"For i = 0 To rs.Fields.Count - 1
"实时错误,对象变量或WITH变量未设置",实际上在”set rs=rdso.Recordset"显示为"rs=nothing"和"rdso.Recordset=Nothing",原代码如下:(完全是书上的代码,不能运行)错在哪里呢?
Dim rdso As New RDS.DataControl
Dim rs As ADOR.Recordset

Private Sub Command1_Click()
driver = "driver={Microsoft Access Driver (*.mdb)}"
dbpath = ";dbq=e:\member.mdb"
rdso.Server = "http://127.0.0.1"
rdso.Connect = driver & dbpath
rdso.SQL = "select * from world"
rdso.ExecuteOptions = adcExecAsync
rdso.FetchOptions = adcFetchBackground
rdso.Refresh

Set rs = rdso.Recordset
OutputRecordset rs
End Sub

Sub OutputRecordset(rs As ADOR.Recordset)
Dim S As String
S = ""
List1.Clear
For i = 0 To rs.Fields.Count - 1
S = S & rs.Fields(i).Name & vbTab
Next
List1.AddItem S

While Not rs.EOF
S = ""
For i = 0 To rs.Fields.Count - 1
S = S & rs.Fields(i) & vbTab
Next
List1.AddItem S
rs.MoveNext
Wend
End sub


...全文
613 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinkai_woo 2001-03-13
  • 打赏
  • 举报
回复
我再加100分,请各位大虾解释一下为什么会出现:
“实时错误,‘214702489(8007005)'指定的Handler已拒绝访问,
如何解决?万分感谢?
liyang 2000-06-22
  • 打赏
  • 举报
回复
123for ,可以给我一份邮件吗?
123for 2000-05-26
  • 打赏
  • 举报
回复
问题是王国荣也在他的后面程序中讲到这个问题,而且程序中对huitor将的问题都处理了,但是在我打开原程序并运行,都是一个样:指定的Handler已经无法访问。
huitor,我已将原文件都email给你了。你试一试,你打开并运行source\ch17\下的工程文件,试一试。网上还有谁想试一试这本书的原文件?(注意:数据库在source\mdb\目录下,事先请将数据库文件的目录设置为可执行的。你们受到并测试后,正常与否,请给我email:for123@263.net或wfl123@263.net
123for 2000-05-26
  • 打赏
  • 举报
回复
同步执行时,记录数量少数据库中只有10条记录,也提示rdso.Refresh指定的Handler已经拒绝访问。
huitor 2000-05-26
  • 打赏
  • 举报
回复
我在asp栏目已经回答了这个问题。
请仔细阅读ReadyState属性,注意它的两个值:adcReadyStateInteractive和adcReadyStateComplete。

如果设定为同步执行,在纪录数量多的时候,程序一般进入等待状态,无法继续执行。
设定为异步执行,需要做等待处理。
123for 2000-05-26
  • 打赏
  • 举报
回复
Lo:
在引用ADOR 2.1 Library 和 RDS 2.1 Library 不会有 ADODB这个类型的
Dim rs as ADODB.Recordset
你先在你的电脑上试一试。请问你的意思。

wenfeng 2000-05-26
  • 打赏
  • 举报
回复
源文件,Please email me!
Lo 2000-05-26
  • 打赏
  • 举报
回复
用Dim rs as ADODB.Recordset
123for 2000-05-26
  • 打赏
  • 举报
回复
凡是参与了这个问题讨论的网友都得到了我一分邮件,请各位查收。
TopHead 2000-05-25
  • 打赏
  • 举报
回复
我把原因和结果给你发过去啦,别忘啦加分哦:)
TopHead 2000-05-25
  • 打赏
  • 举报
回复
不知道啦,;(
123for 2000-05-25
  • 打赏
  • 举报
回复
光标落在 rdso.Refresh一句上,
123for 2000-05-25
  • 打赏
  • 举报
回复
现在已经不是类型未定义的问题,因为应用都有了,但是运行时,显示“实时错误,
‘214702489(8007005)'指定的Handler已拒绝访问,
上面的问题就是这个了,而且两个现象不是一回事
123for 2000-05-25
  • 打赏
  • 举报
回复
上面的Rdso应为RDS,刚才写错了,但还是不行,请找原因,是不是
RDS什么的?或DataControl有什么别的操作?
123for 2000-05-25
  • 打赏
  • 举报
回复
好了,现在是直接打开工程文件后的确有上面那两个引用,但是运行时显示:
"编译错误,用户定义的类型未定义 NEW Rdso.DataControl
再想想是什么原因?

TopHead 2000-05-25
  • 打赏
  • 举报
回复
直接打开窗体没有引用!
123for 2000-05-25
  • 打赏
  • 举报
回复
直接打开窗体文件(无论你的还是我的)都不会有引用,所以显示上面信息。
但直接打开工程文件(无论你的还是我的)总有引用的上面两个文件。
请你先直接打开你的窗体文件不理会工程文件,看引用中是否有那两个文件?这究竟是正常的还是不正常的现象?(you try it,please.)
另打开工程文件后引用中有那两个文件,但调试还是指定的Handler已经拒绝访问
TopHead 2000-05-25
  • 打赏
  • 举报
回复
你没将引用加入?
123for 2000-05-25
  • 打赏
  • 举报
回复
已经收到了你的原文件三个。
一样的现象。但是似乎找到了原因。
1。当我直接打开窗体文件并运行时,显示在第一行:
Dim rdso As New RDS.DataControl
编译错误,用户定义的类型未定义
2。当我直接打开工程文件并运行时,显示为指定的handler已拒绝访问。光标在
“rdso.Rfresh"行
上面两种现象好象就是一回事,其实就是"类型未定义"这个类型是指
NEW RDS.DataControl
那么如何解决呢?


123for 2000-05-25
  • 打赏
  • 举报
回复
原文件呢?hurry please!!!
加载更多回复(13)

7,763

社区成员

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

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