delphi - 禁用 FireDAC 上的更新计数检查
问题描述
在 TFDQuery 上调用 Post 时,我收到此错误:
[FireDAC][Phys][MSSQL]-312 Exact update affected [5] rows, while [1] was requested
通常,此检查对于警告您可能做错了什么非常有用,但在这种情况下,我想为 TFDQuery 上的每一行更新多个记录。有没有办法禁用 FDQuery Posts 的计数检查?
我正在尝试将 UpdateOptions.CountUpdateRecords 设置为 false,但它仍然会引发错误。
代码类似于:
q1:=TAEFDQuery.Create(Self);
q1.UpdateOptions.CountUpdatedRecords := False; // I try to disable the count check
q1.Connection:=Fprincipal.dades;
q1.SQL.Text:=' SELECT NumeroOrdre,' +
' Palet,' +
' tipusPalets,' +
' numPaletFabricacio' +
' FROM DistribucioPalets' +
' WHERE NumeroOrdre = ' + Ordre.ToString
q1.Open;
q1.Edit;
q1.FieldByName('numPaletFabricacio').AsInteger:=numPaletFabricacio;
q1.Post;
PS:我知道我可以很容易地用UPDATE命令替换它,但是这是我从ADO移植到FireDAC的程序并且有很多类似的查询,所以我想先看看是否有可以设置的配置属性FireDAC 查询的行为与原始 ADO 查询的行为类似。
谢谢
解决方案
正如 Brian 提到的,在属性中的 TFDTable(或 TFDQuery)中,打开 UpdateOptions 分支,您会找到属性 CountUpdatedRecords,它确实避免了错误消息,我一直遇到问题,因为另一个更新触发的更新都混在一起了,但是没有错误信息。
您还可以在连接属性中修改此属性(在相同的 TFDQuery 或 TFDTable 属性Object Inspector中),打开 Connection --> Update Options --> CountUpdatedRecords 的分支并将其设置为 false。但是,如果您在连接上这样做,您将更改使用该连接的所有 TFDQuery/TFDTable 的此属性。
我遇到了同样的问题,这意味着,在更新 TFDQuery 中的一条记录时,我确实更新了同一数据源中受此更新影响的其他记录,并通过将此属性设置为 False 得到了此错误消息。更新执行错误,但我不再收到错误消息。
推荐阅读
- python - 使用 Django 客户端测试多个复选框
- matlab - 使用用户定义函数的卷积核。如何处理负像素值?
- python - Matplotlib 直方图不显示分布细节
- jquery - 移动 Safari 滚动问题 - 过度滚动和橡皮筋
- node.js - 在 Express 中更改每条路线的视图目录?
- tabulator - 制表符 - 选择当前页面上显示的行
- kubernetes - Kubernetes - 单集群或多集群
- python - 在 Google Cloud Platform 中为 Keras ML 训练读取存储桶中存储的批量数据的理想方法?
- java - 如何或我可以为多个 JButton (颜色变化)概括一个 If 语句?
- javascript - JS中的新关键字