NO_SQL_DATA 删除记录时出错,firedac,delphi 10.3.1

NO_SQL_DATA error when deleting a record, firedac, delphi 10.3.1

使用 sql 服务器和 delphi 10.3.1,以及 firedac。

我正在使用缓存更新,并启用了自动提交功能。

我一直设法让我的数据进入记录已从数据库中删除的状态,并且我还在数据集中删除了该记录。

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

我的问题 - 我怎样才能避免 return 那个错误?因为它确实不是错误,它正在尝试删除不再存在的记录。我没有找到关于查询更新选项的任何文档,所以是否有我需要设置的标志?

您可以在 OnUpdateError 中处理更新错误并在决定如何继续之前执行任何其他检查。盲目地假装所有删除都有效,就像这样:

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

阅读 OnUpdateError 的联机帮助以获取更多信息。