cds.RecordCount 有问题吗?
我通常使用它来确定查询中是否有任何记录。
但是在与一所大学交谈时,他告诉我们这样做会造成性能损失!
我做了一些测试,没有出现任何重大问题。
那么 RecordCount 是否存在性能损失或任何其他问题?!
如果是这样,检查查询中是否有一些记录的最佳方法是什么?
谢谢
cds.RecordCount 有问题吗?
我通常使用它来确定查询中是否有任何记录。
但是在与一所大学交谈时,他告诉我们这样做会造成性能损失!
我做了一些测试,没有出现任何重大问题。
那么 RecordCount 是否存在性能损失或任何其他问题?!
如果是这样,检查查询中是否有一些记录的最佳方法是什么?
谢谢
如果您使用 TClientDataSet (正如您的“cds”似乎暗示的那样)PacketRecords
设置为-1
(默认)或FetchOnDemand
设置False
为没有区别,因为客户端数据集一次接收所有数据并将其加载到内存中。当您移动光标时,其他数据集会根据需要获取数据,使用RecordCount
将首先获取所有数据,这种差异会很明显。在这种情况下,最好EOF
在打开后使用数据集的属性 - 如果您只想知道结果集是否为空。
最好的解决方案是执行SELECT COUNT(*)
查询。
如果您需要本地的所有记录,您应该将FetchOnDemand
属性设置为,False
或者您可以cds.Last
在之前调用cds.RecordCount
。
cds.IsEmpty
如果目的是检查数据集是否包含记录,还有一种方法......