禁用 FireDAC 上的更新计数检查

Disable the Update Count check on 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:我知道我可以很容易地用更新命令替换它,但这是我从 ADO 移植到 FireDAC 的程序并且有很多类似的查询,所以我想看看首先,如果有配置属性可以将 FireDAC 查询设置为类似于原始 ADO 查询的行为。

谢谢

正如 Brian 提到的,在属性中的 TFDTable(或 TFDQuery)中,打开 UpdateOptions 分支,您会找到 属性 CountUpdatedRecords,它确实避免了错误消息,我在更新时一直遇到问题通过另一个更新搞混了,但没有错误消息。

您还可以在连接属性中修改这个属性(在相同的 TFDQuery 或 TFDTable 属性中 Object Inspector),打开连接分支 --> 更新选项 --> CountUpdatedRecords 并将其设置为 false。但是,如果您在连接上这样做,您将为使用该连接的所有 TFDQuery/TFDTable 更改此 属性。

我遇到了同样的问题,意思是,在更新 TFDQuery 中的一条记录时,我确实在同一个 data-source 中更新了受此更新影响的其他记录,并收到此错误消息,但通过设置此 属性 为假。更新错误,但我没有收到任何错误消息。