使用sql server和delphi 10.3.1,以及firedac。
我使用的是启用自动提交功能的缓存更新。
我一直在努力使数据进入从数据库中删除记录的状态,并且我还删除了数据集中的记录。
然后,当它尝试将更改提交到数据库(数据不再存在)时,出现错误: [我的应用程序]引发了带有消息[firedac] [Phys] [odbc] [sqlncli11.dll]的异常类emssqlNativeException SQL_NO_DATA 然后我无法清除数据集上的缓存更新标志,因为那里有东西在“坐着”。
我的问题-如何获取不返回该错误的信息?因为这实际上不是错误,所以它正在尝试删除不再存在的记录。我在查询的更新选项上找不到任何文档,因此是否需要设置标志?
答案 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的在线帮助以了解更多信息。