0

次のことを実行したいと思います。

1) データセットを開く (TMSQuery、SDAC DevArt コンポーネントを使用)

2) コンテンツをディスクにキャッシュする (カットマーのリストを想像してください)

3) 次にデータセットを開く必要があるときは、最初にキャッシュされたデータを入力します。次に、TMSQuery.RefreshQuick メソッドを呼び出してデータを更新します。

このようにして、以前のアプリケーションの実行で既に取得したレコードを取得する必要がないため、速度を大幅に改善する予定です。

このキャッシュを取得するにはどうすればよいですか? 私はTMSQueryを備えた多くのデータモジュールを持っているので、どういうわけか、TMSQueryを開こうとするたびにチェックするグローバルルーチンが必要です. Open を呼び出します。

提案していただけますか?

(私は Delphi 2009 と SDAC 4.80 を使用しています)

4

2 に答える 2

3

TClientDataSetこれにはおよびコンポーネントを使用してTDataSetProvider、この方法でコンポーネントを接続できます。

TMSQuery->TDataSetProvider->TClientDataSet

これTClientDataSetは、ディスクからデータを保持して取得するための非常に優れた代替手段です。

ClientDataset の詳細については、これらのリンクを参照してください。

于 2010-10-07T10:58:22.017 に答える
1

次の 2 つのことができます。

  1. TMSQuery コンポーネントの子孫を作成し、Open 関数をオーバーライドします (すべてのデータ モジュールの .dfm および .pas ファイルを TMSQuery で検索し、TCachedTMSQuery に置き換えます)。
  2. TMSQuery.Open の迂回/フック (ランタイム パッチ)
于 2010-10-07T10:51:05.023 に答える