You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ADO连接后判断数据库类型时SQL Server环境下异常未捕获问题咨询

问题原因及解决办法

核心原因

出现这个弹窗的本质是ADO组件或数据集的错误提示属性被开启,导致SQL执行出错时,系统先弹出错误提示框,再进入代码的异常处理流程。常见触发场景有两种:

  1. ADOConnection的ErrorPrompt属性变更
    你的ADO连接组件的ErrorPrompt属性可能被改成了True。这个属性默认通常为False,当设为True时,ADO会在抛出异常前自动弹出系统级的错误提示框,也就是你看到的Invalid object name 'Dual'提示。

  2. 数据集组件的ShowMessageOnError属性开启
    你用到的qTableDefinition(应该是TQuery/TADOQuery类)的ShowMessageOnError属性被设置为True。这个属性控制数据集执行SQL出错时,是否直接显示错误消息框,而不是直接进入代码的异常捕获逻辑。

另外,也有可能是近期更新了SQL Server的ODBC驱动或ADO组件版本,新版本的驱动行为改变,默认开启了错误弹窗提示。

解决步骤

  • 找到你的ADOConnection组件,在设计时或代码里设置ADOConnection1.ErrorPrompt := False;,禁用连接级的错误弹窗。
  • 针对qTableDefinition,设置qTableDefinition.ShowMessageOnError := False;,确保数据集出错时直接进入异常处理,不弹窗。
  • 如果是驱动版本问题,可以尝试回退到之前正常运行的驱动版本,或者在驱动配置中关闭错误提示相关选项。

内容的提问来源于stack exchange,提问作者NiMuSi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:41:00