石鑫华视觉论坛

 找回密码
 注册会员
查看: 7465|回复: 3

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

[复制链接]
  • TA的每日心情

    11 小时前
  • 签到天数: 3384 天

    连续签到: 6 天

    [LV.Master]2000FPS

    发表于 2020-5-11 15:49:58 | 显示全部楼层 |阅读模式 来自:广东省东莞市 电信

    注册登陆后可查看附件和大图,以及购买相关内容

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

    x
    最后在用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函数是在是否获取数据的外面。如下图所示:这

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

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

    使用道具 举报

    该用户从未签到

    发表于 2021-2-19 11:09:52 | 显示全部楼层 来自:江苏省苏州市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2022-5-2 20:58
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]300FPS

    发表于 2021-12-12 21:12:56 | 显示全部楼层 来自:湖南省 移动
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    LabVIEW HALCON图像处理入门教程(24.09)
    石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
    《LabVIEW Vision函数实例详解2020-2024》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23/24

    QQ|石鑫华视觉论坛 |网站地图

    GMT+8, 2024-11-22 19:58

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

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