删除记录,firedac,delphi 10.3.1时发生NO_SQL_DATA错误

时间:2019-03-26 14:32:18

标签: sql-server delphi firedac

使用sql server和delphi 10.3.1,以及firedac。

我使用的是启用自动提交功能的缓存更新。

我一直在努力使数据进入从数据库中删除记录的状态,并且我还删除了数据集中的记录。

然后,当它尝试将更改提交到数据库(数据不再存在)时,出现错误: [我的应用程序]引发了带有消息[firedac] [Phys] [odbc] [sqlncli11.dll]的异常类emssqlNativeException SQL_NO_DATA 然后我无法清除数据集上的缓存更新标志,因为那里有东西在“坐着”。

我的问题-如何获取不返回该错误的信息?因为这实际上不是错误,所以它正在尝试删除不再存在的记录。我在查询的更新选项上找不到任何文档,因此是否需要设置标志?

1 个答案:

答案 0 :(得分:1)

您可以处理OnUpdateError中的更新错误,并在决定如何进行操作之前执行任何其他检查。盲目地假装所有删除工作都是这样的:

procedure TForm1.FDQuery1UpdateError(ASender: TDataSet; AException:
    EFDException; ARow: TFDDatSRow; ARequest: TFDUpdateRequest; var AAction:
    TFDErrorAction);
begin
   if ARequest = ARDelete then AAction := eaApplied;
end;

阅读OnUpdateError的在线帮助以了解更多信息。