ADO Error 异常处理?

2024-04-04

我刚刚通过将表和查询替换为 ADO 组件中的等效项,从使用 BDE 切换到 ADO。

我总是在 try...catch 中执行查询,如下所示:

//Fdm is Data Module
//TEndOfDay is TTable
//QEndOfDay is TQuery

Screen->Cursor = crSQLWait;
Fdm->QEndOfDay->SQL->Add("SELECT * FROM TEndOfDay");
try{
  Fdm->QEndOfDay->ExecSQL();
  Fdm->QEndOfDay->Open();
  Screen->Cursor = crDefault;
}
catch (EDBEngineError &DBEngineError){
  strError = DBEngineError.Message;
  Screen->Cursor = crDefault;
}
catch (EDatabaseError &DatabaseError){
  strError = DatabaseError.Message;
  Screen->Cursor = crDefault;
}
catch(...){
  strError = "Error";
  Screen->Cursor = crDefault;
}          

由于我切换到 ADO,这些异常(DBEngineError、DatabaseError)是否适用?

我已经编辑了我的帖子,将 Delphi 人员包括在内,他们的回复很快。不管Delphi代码中是否有答案。


您应该首先检查EADOError http://docwiki.embarcadero.com/Libraries/XE5/en/Data.Win.ADODB.EADOError,它们是特定的 ADO 相关异常,然后EDatabaseError http://docwiki.embarcadero.com/Libraries/XE5/en/Data.DB.EDatabaseError,这是更一般的数据库异常。EDBEngineError是一个旧的 BDE 异常类,如果您不使用 BDE,则不再适用。

Screen.Cursor := crSQLWait;
Fdm.QEndOfDay.SQL.Text := 'SELECT * FROM TEndOfDay';
try
  try
    Fdm.QEndOfDay.Open;
  except
    on E: EAdoError do
    begin
      // ADO specific error handling
    end;
    on E: EDatabaseError do
    begin
      // Generic database error handling
    end;
    on E: Exception do
    begin
      // Other exceptions (non-DB related)
    end;
  end;
finally
  // Revert cursor to default always.
  Screen.Cursor := crDefault;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ADO Error 异常处理? 的相关文章

随机推荐

  • 在 mysql 中导出和导入 utf8 数据:最佳实践

    我们经常需要将数据文件发送给我们的一位客户 其中包含他 她需要翻译的数据库中的数据 大多数情况下 此导出为 CSV 或 XLS 大多数时候 我们使用 phpmyadmin 创建 csv 转储 并获得包含翻译数据的 xls 文件 问题是 大多
  • 在 r2017b 中使用 C++ 中的 startMATLAB 和“MatlabEngine.hpp”发出问题

    在新版本 2017b 中 Matlab 发布了新的 C MATLAB 引擎 API https fr mathworks com help matlab calling matlab engine from cpp programs htm
  • $(form).ajaxSubmit 不是函数

    我正在尝试使用 jquery 验证插件来验证表单并使用 ajax 请求提交内容 这段代码位于我的文档的头部 document ready function contact form validate submitHandler functi
  • 从命令行查找并替换多行文本

    我正在尝试使用还执行其他操作的脚本编辑配置文件 该脚本需要找到某些连续的文本行并将其删除 它需要在适当的位置粘贴一个新配置 该新配置从旧配置所在的同一行开始 在新旧配置中 空间的使用都很重要 在 configfile php 中 此文本块
  • 如何在开源(Github + Heroku)应用程序中保护 Google API 密钥

    我正在创建一个应用程序 希望在未来几周内开源 源代码位于 Github 上 如果通过了 Travis CI 测试 Heroku 会在有新提交时自动部署代码 在此应用程序中 我有几个 API 密钥 通过在我的 heroku dynos 中使用
  • 将 2 元素数组的数组转换为散列,其中重复的键附加附加值

    例如 给定一个数组 array a b a c c b 返回以下哈希 hash a gt b c c gt b hash Hash array 覆盖以前的关联 产生 hash a gt c c gt b 使用功能性婴儿步骤 irb 01 0
  • 未填充方块的 Matplotlib 散点图

    我想制作一个带有未填充方块的散点图 markerfacecolor不是一个被认可的选项scatter https matplotlib org devdocs api as gen matplotlib pyplot scatter htm
  • 如何让应用程序兼容所有Android手机?

    请帮助我解决我的问题 在我的大多数应用程序中 Ui 设计并不兼容所有 Android 设备 即 所有小部件在所有手机中都没有按正确的顺序对齐 我想开发一个应用程序应该适合所有手机尺寸和分辨率 大手机 普通手机和小手机 请解决这个问题 提前致
  • 使用 jQuery 绘制饼图

    我想用 JavaScript 创建一个饼图 在搜索中我发现了 Google Charts API 由于我们使用的是 jQuery 我发现有Google 图表的 jQuery 集成 http www maxb net scripts jgch
  • 针对 arm64 和 32 位架构进行编译时的基础类型

    在为 arm64 编译 iOS 应用程序的代码时 我遇到了一个有趣的问题 该问题与自定义 Foundation 类型的不同基本类型有关 假设我想 printf 或 stringWithFormat 声明为的数字NSU整数 NSString
  • EF(实体框架)“using”语句的用法

    我有一个关于 MVC 的项目 我们选择 EF 进行数据库事务 我们为 BLL 层创建了一些管理器 我找到了很多例子 其中 using使用 语句 即 public Item GetItem long itemId using var db n
  • 我将如何保存和加载 UITextField?

    我到处搜索并尝试了很多代码 但似乎没有什么对我有用 我需要做的就是加载 在 viewDidLoad 上 一个文本字段并在按下按钮时保存它 是什么easiest这样做的方法 我正在使用单窗口应用程序 我没有视图控制器 这可能会有所不同 Tha
  • 运行 sympy 中表达式的 AST

    我正在使用 sympy 来计算复杂函数表达式的一些高阶导数 我想遍历表达式的 AST 例如首先深度遍历节点 我怎么做 一个简单的深度优先旅行将是这样的 from sympy import pi sin from sympy abc impo
  • 将 JSP 包含到 sling servlet 中

    我目前正在开发一个小项目 试图帮助某人弄清楚如何连接组件 理想情况下我们想做两件事 有一个呈现模板的 jsp 我们所有的业务登录都在 SlingAllMethodServlet 中 servlet 定义要点 package definiti
  • 如何使用 Slim 接受所有 REST URI 中的排序和分页参数?

    我正在使用 Slim PHP 框架为我的应用程序创建 RESTful API 我希望所有 URL 都能够接受排序和分页参数 有人可以告诉我最好的方法吗 另外 有人可以为我提供一些适当的 REST URI 吗 IE
  • vs2010调试:模块构建时没有调试信息?

    收到此消息 这不是真的 以下模块是在启用优化或没有调试信息的情况下构建的 它给了我一个临时 asp net 文件的路径 C WINDOWS Microsoft NET Framework v4 0 30319 Temporary ASP N
  • 日期格式到cron格式转换

    我想将日期格式更改为 cron 日期格式 怎么办 日期格式 2018 05 15 17 30 00 cron 格式 30 17 15 05 您可以通过多种方式做到这一点 但这是更简单的方法之一 bin bash DATESTR 2018 0
  • 如何将 PhpStorm 与 Xdebug 连接

    我希望这里有人可以帮助我解决我的问题 我最近进入了我的第一个 PHP 项目 需要设置调试 我知道很多人在我面前遇到了同样的问题 但我很难找到解决方案 我需要使用 Xdebug 设置 PhpStorm 并且所有设置使其仍然无法工作 当我开始调
  • MySQL 8.x 中的主要错误? -- 外键

    当从 MySQL 用于代码生成器 检索外键信息时 我注意到这种奇怪的行为 它看起来像是 MySQL 8 x 中的一个主要错误 当我使用创建外键时REFERENCES引擎不强制执行它 例如 create table p id int prim
  • ADO Error 异常处理?

    我刚刚通过将表和查询替换为 ADO 组件中的等效项 从使用 BDE 切换到 ADO 我总是在 try catch 中执行查询 如下所示 Fdm is Data Module TEndOfDay is TTable QEndOfDay is