パラメータでのレコードの制限
クライアント データセットが、
- TTable コンポーネントまたは TSQLTable コンポーネントを表すプロバイダが関連付けられた TClientDataSet インスタンスである
- CommandType プロパティが ctTable である TSimpleDataSet インスタンスまたは TBDEClientDataSet インスタンスである
上記のいずれかであれば、Params プロパティを使用して、メモリ内にキャッシュするレコードを制限することができます。各パラメータはフィールド値を表し、それに一致したレコードのみがクライアント データセットのデータに含められます。この動作はフィルタと似ていますが、フィルタではレコードはメモリ内にキャッシュされたままで、使用だけができないという点が異なります。
パラメータ名はフィールドの名前と一致しなければなりません。TClientDataSet を使用している場合、これは、プロバイダに関連付けられた TTable コンポーネントまたは TSQLTable コンポーネントのフィールド名です。TSimpleDataSet または TBDEClientDataSet を使用している場合、これは、データベース サーバー上のテーブルのフィールド名です。結果として、クライアント データセット内のデータには、対応するフィールドの値がパラメータに割り当てられた値と一致するレコードのみが含められます。
たとえば、1 人の顧客から受けた注文を表示するアプリケーションがあるとします。ユーザーが顧客を指定すると、クライアント データセットは、Params プロパティに、名前が CustID(ソース テーブルでフィールドに付けられている名前)で、注文を表示したい顧客を特定する値を持つ、1 つのパラメータを設定します。クライアント データセットは、ソース データセットのデータを要求するときに、このパラメータ値を渡します。するとプロバイダは、指定された顧客のレコードだけを送信します。この方法は、プロバイダからすべての注文レコードをクライアント アプリケーションに送信して、それからクライアント データセットを使ってレコードにフィルタをかけるよりも、効率的です。