delphi 中获取update记录数 query1.add(update a set b='')

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 中获取update记录数 query1.add(update a set b='')相关的知识,希望对你有一定的参考价值。

query1.add(update a set b='')

这个语句如何获取它更新的记录数.

你的更新没有条件
那就可以接着查一下就可以了
select * from a

然后query1.recordcount 就是你更新的记录数
参考技术A 没有更新条件就是整个表都被更新了
select count(*) 就是了
有更新条件就加上更新的条件查询

SetRange 活动时如何获取 FireDAC 记录数

【中文标题】SetRange 活动时如何获取 FireDAC 记录数【英文标题】:How to get FireDAC record count when SetRange active 【发布时间】:2016-07-15 07:33:08 【问题描述】:

在我的项目(Delphi 10 Seattle)中,我正在慢慢地从 ClientDataSet 迁移到 FireDAC FDQuery 组件。

我经常使用 CDS 的一个技巧是检查范围内的记录数。

即:

CDS.SetRange([Value1][Value2]);  
k := CDS.RecordCount;  
case k of  
  1 : DoSingleThing;  
  2 : DoDoubleThing;  
else  
  BailOnWrongCount;  
end;  

因为我需要同时提供整个数据集,所以我在第一次打开查询时使用 FetchOptions.Mode := fmAll。

执行FDQuery.SetRange([Value1][Value2]); 然后调用FDQuery.RecordCount 总是返回整个数据集的记录计数(根据 fmAll) - 而不是当前范围。

我不得不手动循环遍历范围计数记录。

有没有更简单的方法来获取当前范围内的记录数?

【问题讨论】:

【参考方案1】:

将 FetchOptions.RecordCountMode 设置为 cmVisible: http://docwiki.embarcadero.com/Libraries/Seattle/en/FireDAC.Stan.Option.TFDFetchOptions.RecordCountMode

【讨论】:

再一次令人眼花缭乱。谢谢你 - 在适当地设置 FetchOptions.Mode 之后,我完全错过了 RecordCountMode (或者更确切地说,前一段时间读过它并完全忘记了)。慢慢走在前面,非常感谢您的支持。 ——只是为了确定——如果连接到 DBGrid,cmVisible 会返回不同的结果吗?我认为这最初让我感到困惑:它不是网格中当前可见的记录,而是实际上是当前可访问的所有可能记录的子集 - 无论是过滤还是受范围限制 - 这是正确的吗? cmVisible 表示记录数,可通过 TDataSet 导航 API(First、Next、Eof 等)以及所有当前过滤/限制设置访问。 cmVisible 与 GUI 或 TDBGrid 无关。可能更好的名字是 cmAccessible,但这个名字可能会引起其他疑问......

以上是关于delphi 中获取update记录数 query1.add(update a set b='')的主要内容,如果未能解决你的问题,请参考以下文章

获取 PostgreSQL 中受 INSERT 或 UPDATE 影响的记录数

使用 C# 获取 MySQL 记录数

thinkphp常见问题

在JPA进行分页查询时,Query接口中的啥方法用于设定需要获取的总行数

SetRange 活动时如何获取 FireDAC 记录数

delphi 组件显示记录数