5

Delphi XE で 2.8 MB の XML ファイルを ClientDataSet に変換しました。XML ファイルは非常に頻繁に変更されます。私は基本的に、XML が変更されるたびに新しい CDS ファイルをプログラムで作成しています。変化するのは内容だけでなく、実際の構造でもあります。

問題は、ClientDataSet1 で単純な SQL を使用して、メモリ内に結果テーブルを持つ 2 番目の ClientDataSet を作成することは可能かということです。答えが「はい」の場合、基本的な仕組みは何ですか? 現在、私は TClientDataSet と TDataSource のみを使用して、データベースをデータベース対応コンポーネントで利用できるようにしています。

4

2 に答える 2

6

いいえ、メモリ データセットとして使用される when に対して SQL 文を実行することはできませんTClientDataSet。これは、SQL プロバイダーが関連付けられていないためです。最良のオプションは、TClientDataSet に含まれているフィルタリング機能を使用することです。そのために、RangesまたはFiltersを使用して、結果をセカンダリ TClientDataSet に複製できます。フィルタリングの詳細については、この記事を試してくださいFiltering ClientDataSets

于 2012-04-07T10:18:44.740 に答える
5

TxQuery はあなたが望むことをするかもしれません。これは、SQL ステートメントを使用して 1 つ以上の TDataSet 子孫コンポーネントを照会するために使用できる TDataSet 子孫コンポーネントです。http://code.google.com/p/txquery/で入手できます。

于 2012-04-08T02:05:30.440 に答える