3

cds.RecordCount に問題はありますか?

通常、クエリにレコードがあるかどうかを判断するために使用します。

しかし、大学と話すと、それにはパフォーマンスのペナルティがあると彼は言いました!

私はいくつかのテストを行いましたが、大きなことは何も起こりませんでした。

では、パフォーマンスの低下や RecordCount に関するその他の問題はありますか?!

もしそうなら、クエリにいくつかのレコードがあるかどうかを確認する最良の方法は何ですか?

ありがとう

4

2 に答える 2

4

TClientDataSet を ('cds' が暗示しているように)を(デフォルト)にPacketRecords設定して使用する場合と に設定して使用している場合、クライアント データセットはすべてのデータを一度に受信してメモリにロードするため、違いはありません。違いは、カーソルを進めるとオンデマンドでデータをフェッチする他のデータセットで顕著になります。使用すると、すべてのデータが最初にフェッチされます。このような場合、結果セットが空かどうかだけ知りたい場合は、開いた後にデータセットのプロパティを使用することをお勧めします。-1FetchOnDemandFalseRecordCountEOF

于 2011-04-07T11:25:49.493 に答える
3

最善の解決策は、SELECT COUNT(*)クエリを実行することです。

すべてのレコードがローカルに必要な場合は、FetchOnDemandプロパティを に設定するか、直前にFalse呼び出すことができます。cds.Lastcds.RecordCount

cds.IsEmptyデータセットにレコードが含まれているかどうかを確認することが目的の場合の方法もあります...

于 2011-04-07T12:02:13.157 に答える