加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 即使ApplyUpdates在try …之外,仍会出现错误弹出窗口

发布时间:2020-12-15 09:29:06 所属栏目:大数据 来源:网络整理
导读:找到解决方案,请参阅下面的评论 D5,odbc到mysql数据库 这段代码: with QryCmdPerf do begin Close; ParamByName('ACCTID').AsInteger:= AcctId; ParamByName('FROMDT').AsString:= MySQLDate(FromDt); ParamByName('TODT').AsString:= MySQLDate(ToDt); Ope
找到解决方案,请参阅下面的评论

D5,odbc到mysql数据库

这段代码:

with QryCmdPerf do begin
    Close;
    ParamByName('ACCTID').AsInteger:= AcctId;
    ParamByName('FROMDT').AsString:= MySQLDate(FromDt);
    ParamByName('TODT').AsString:= MySQLDate(ToDt);
    Open;
    first;
    try
      edit;
      FieldByName('PnL').AsFloat:= 97979;
      ApplyUpdates;
    except
      close;
    end;
  end;    // with

(特别是“ApplyUpdates”)如果PnL字段已经具有值97979,则会出现带有文本“Update Failed”的弹出窗口,显然是因为这段代码:

procedure TUpdateSQL.ExecSQL(UpdateKind: TUpdateKind);
begin
  with Query[UpdateKind] do
  begin
    Prepare;
    ExecSQL;
    if RowsAffected <> 1 then DatabaseError(SUpdateFailed);
  end;
end;

在DBTables.pas中.无论如何,我希望能够发布ApplyUpdates,如果它没有进行任何更新,就不必担心弹出窗口.但如果“尝试……除外”不起作用,会是什么?

TIA

解决方法

您将调试器显示的对话框与程序显示的对话框混淆.请看几年前我写的这篇文章:

> Why do I continue getting error messages even after I have written an exception handler?

它描述了几种避免调试器干扰的方法:

>使用“高级断点”临时禁用抛出异常的代码周围的调试器.>配置调试器以忽略某些异常类型. (更仔细地阅读调试器的消息,以确切了解您正在处理的异常类.)>配置调试器不要在任何异常时中断.>完全关闭集成调试器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读