删除记录时出现 NO_SQL_DATA 错误,firedac,delphi 10.3.1
Posted
技术标签:
【中文标题】删除记录时出现 NO_SQL_DATA 错误,firedac,delphi 10.3.1【英文标题】:NO_SQL_DATA error when deleting a record, firedac, delphi 10.3.1 【发布时间】:2019-03-26 14:32:18 【问题描述】:使用 sql server 和 delphi 10.3.1 和 fireac。
我正在使用缓存更新,并启用自动提交。
我一直设法使我的数据进入记录已从数据库中删除的状态,并且我还删除了数据集中的该记录。
然后,当它尝试将更改提交到数据库(数据不再存在)时,我收到一个错误: [我的应用程序] 引发异常类 emssqlNativeException 并带有消息 [firedac][Phys][odbc][sqlncli11.dll] SQL_NO_DATA 然后我无法清除数据集上的缓存更新标志,因为那里“坐”着东西。
我的问题 - 我怎样才能让它不返回那个错误?因为它真的不是错误,它试图删除不再存在的记录。我没有找到关于查询更新选项的任何文档,所以我需要设置一个标志吗?
【问题讨论】:
使用OnUpdateError
处理更新错误。对于您想在错误输出后忽略/跳过的更新,请为 AAction
返回 eaApplied
。
【参考方案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 的在线帮助以了解更多信息。
【讨论】:
以上是关于删除记录时出现 NO_SQL_DATA 错误,firedac,delphi 10.3.1的主要内容,如果未能解决你的问题,请参考以下文章
SQL删除操作问题,3点时一个错误导致数据库资料完全混乱,那我想删除今天3点后的操作,需要啥语句?
将mysql与pythonanywhere一起使用时出现错误4