视觉论坛VISIONBBS_视觉之家VISIONHOME微信公众号:石鑫华视觉网

 找回密码
 注册会员
查看: 80|回复: 1

[原创] LabSQL错误-2146824584发生于 ADO Recordset GetString.vi:Exception occured in ADODB.Recordset: 对象关闭时,不允许操作。

[复制链接]
  • TA的每日心情
    慵懒
    昨天 20:09
  • 签到天数: 1847 天

    [LV.Master]2000FPS

    发表于 2020-5-11 15:49:58 | 显示全部楼层 |阅读模式
    最后在用LabSQL操作MYSQL数据库,做成了状态机的形式,可是在操作时发现,想打开一次,多次执行时,总是会出错,错误如下:

    错误-2146824584发生于 ADO Recordset GetString.vi->SQL Fetch Data (GetString).vi->SQL Execute.vi->MySQL-状态机.vi->Main.vi中的Exception occured in ADODB.Recordset: 对象关闭时,不允许操作。Help Path is C:\Windows\HELP\ADO270.CHM and context 1240653

    该错误代码未定义。出现未定义错误可能有多种原因。例如,代码说明不存在,或者连线输入的数值并非对应于错误输入的错误代码。

    此外,出现未定义错误代码的原因还可能是该错误与操作系统或ActiveX之类的第三方对象相关。对于这类第三方错误,可通过对错误代码(-2146824584)或其十六进制表示(0x800A0E78)进行Web搜索得到错误说明。


    这个错误的意思就是,SQL Execute.vi函数中的ADO Recordset GetString.vi子函数的对象关闭了,不再允许操作。可是我们在状态机里,只打开了一次,还没有执行关闭动作。认真查看了一下里面的函数,发现ADO Recordset Destroy.vi函数是在是否获取数据的外面。如下图所示:这

    需要执行获取数据集时(一般如select语句),ADO Connection Execute.vi返回了Recordset数据集引用,这时执行了获取数据后,再关闭Recordset的引用,是正常的。


    但是在不返回数据时(如update/delete/inset等语句,是不返回数据的),ADO Connection Execute.vi函数本身是不返回Recordset数据集引用的,这时再关闭Recordset引用,则会产生错误。所以,这里不返回数据时,是不需要关闭Recordset的,也就是要把ADO Recordset Destroy.vi函数放到条件结构的真(返回数据里去),只有当要返回数据时,才关闭Recordset引用。修改的函数如下:

    需要返回数据时,则关闭Recordset

    不返回数据,则不关闭Recordset引用

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册会员

    x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    LabVIEW图像处理教程
    机器视觉商城淘宝店铺
    视觉论坛充值赞助方法

    QQ|视觉论坛VISIONBBS.COM|视觉之家VISIONHOME.CN|东莞市华动智能科技有限公司 ( 粤ICP备17078359号-2 )|网站地图

    GMT+8, 2020-5-31 04:30

    Powered by shixinhua.com X3.4

    © 2009-2020 VISIONBBS.COM 浏览量:

    快速回复 返回顶部 返回列表