1个问题

zerg2001 2004-01-05 07:12:22
1 在主程序外的DLL中的数据类ClassData中有一个返回RecordSet的函数GerRs,在主程序中:

Public Cn as New ClassData '在模块中设置为全局变量,保持Connect为连接状态。

Cn.Connect  '打开连接
Dim Rs as Adodb.recordset
set Rs=ClassData.GetRs
Msgbox Rs.Fields(0)
返回错误:对象变量未设置,也就是Rs仍然是Nothing.没有被赋值。

把代码改为:
Msgbox ClassData.GetRs.Fields(0)
结果返回正确值。函数是有传回Recordset的,为什么不能赋值。Cn类对象也没有被关闭,类内的Connection应该还保持连接。

...全文
54 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zerg2001 2004-01-06
  • 打赏
  • 举报
回复
结贴。
海牛 2004-01-06
  • 打赏
  • 举报
回复
哈哈,,撒尿
SoHo_Andy 2004-01-06
  • 打赏
  • 举报
回复
呵呵,笑
zerg2001 2004-01-06
  • 打赏
  • 举报
回复
TO: rainstormmaster(rainstormmaster)
老大,你太神了。还真的是这样。

我本来的主工程中是引用ADOR,没有引用ADO,后来又改成ADO。
现在引用框中也只有ADO,而且Rs的定义是这样写的:
Dim Rs as ADODB.Recordset
居然还是不行。

我改变Rs为Rs1,重新录入代码,又可以了,太搞笑了。这就是
传说中的见鬼吧:(
rainstormmaster 2004-01-05
  • 打赏
  • 举报
回复
//在主程序外的DLL中的数据类ClassData中有一个返回RecordSet的函数GerRs

首先,你要确定这个RecordSet是不是ado的RecordSet
zerg2001 2004-01-05
  • 打赏
  • 举报
回复
用New的话也不行,会提示是空记录集。

不必用New,我只是要创建一个到目标RecordSet的引用,不需要新建一个空的Recordset。
zerg2001 2004-01-05
  • 打赏
  • 举报
回复
不行啊
northwolves 2004-01-05
  • 打赏
  • 举报
回复
try:
Dim Rs as New Adodb.recordset
脆皮大雪糕 2004-01-05
  • 打赏
  • 举报
回复
set Rs=ClassData.GetRs.Clone 可以不可以?
ChinaKable 2004-01-05
  • 打赏
  • 举报
回复
不清楚
帮不了你。

7,759

社区成员

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

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