0

実行に時間がかかる比較的複雑なクエリを使用してfirebirdデータベースにクエリを実行していますが、ユーザーがクエリの進行状況に関する何らかのフィードバックを得ることができれば役立つと思いました。クエリの開始時にステータスバーに適切な「お待ちください」というメッセージを表示し、クエリがデータを返すときにステータスバーをクリアするつもりです。

TSQLDataSet、TDataSetProvider、およびTClientDataSetを使用しています。クエリが終了し、データを表示する準備ができたことを示すために、どのコンポーネントでどのイベントが発生しますか?

TIA、ノーアム

4

3 に答える 3

2

TClientDatasetのBeforeExecuteイベントとAfterExecuteイベントを確認してください。彼らはあなたが必要とするものに合うようです。

クエリの処理中にUIが応答する必要がある場合は、ProcessMessagessを確認するか、別のスレッドでクエリを実行し、OnTerminateを使用して取得したデータをフォームにシャトルします。

于 2010-06-27T13:42:27.967 に答える
0

振り返ってみると、答えは非常に簡単で、イベントとは関係がないため、この質問を投稿して申し訳ありません。これが私の簡単な解決策です。

statusbar1.simpletext:= 'Opening query';
qComplicated.open;
statusbar1.simpletext:= '';

クエリがデータとともに返されると、プログラムコントロールはクエリが開いた後にステートメントに移動し、ステータスバーがクリアされます。

ご回答いただいた方にはお詫び申し上げます。

于 2010-06-28T04:31:22.353 に答える
0

これはUIに関連している(メッセージを表示している)ので、おそらくTClientDataSetのAfterOpenイベントを使用します。

于 2010-06-27T13:38:35.563 に答える