2

私の質問はとても簡単です。TDataSetProvider を介して TADOQuery にリンクされた TClientDataSet があります。TADOQuery から TClientDataSet にデータを入れることはできますが、TClientDataSet から TADOQuery にデータを戻すにはどうすればよいですか?

クエリを実行し、TClientDataSet の Active プロパティを True に設定すると、TADOQuery から TClientDataSet にデータが自動的に転送されますが、TADOQuery を非アクティブにしてから再度アクティブにすると、どうすれば TClientDataSet からデータを取得できますか?

複数のデータベースで同じクエリを実行し、TClientDataSet を使用して結果を連結しています。これはうまくいっています。私の問題は、連結された結果セットを TClientDataSet から TADOQuery に戻して、TADOQuery の SaveToFile プロシージャを使用できるようにする必要があることです (互換性の理由から)。これどうやってするの?

4

3 に答える 3

0

私はこれを調べ終えたところです。私のアプリケーションでは、ユーザーはデータベースにクエリを実行してレポートを生成できます。これを機能させることができ、小さな結果セットには非常に効率的ですが、これはレポートアプリケーションであり、ClientDataSetを使用すると数十万のレコードが返される可能性があるため、パフォーマンスに大きな問題が発生します。約50,000レコードを超えると(顧客ベースを考えると合理的)、処理は指数関数的に増加し始めるため、これは基本的に意味がありません。

于 2009-12-07T17:21:14.737 に答える
0

私は dbExpress を使用しているので TADOQuery は実行しませんが、同じ手法を使用する必要があると思います。変更を TClientDataSet にポストした後、'ApplyUpdates (0)' を呼び出します。これにより、clientdataset からそのプロバイダーにデータが転送されます。

于 2009-12-07T13:19:01.120 に答える