【问题标题】:Display message on query completion查询完成时显示消息
【发布时间】:2010-06-27 10:36:41
【问题描述】:

我正在使用一个相对复杂的查询来查询一个 firebird 数据库,该查询需要一段时间才能执行,并且我认为如果用户可以获得有关查询进度的某种形式的反馈会很有帮助。我打算在查询开始时在状态栏上显示一条合适的“请稍候”消息,并在查询返回其数据时清除状态栏。

我正在使用 TSQLDataSet、TDataSetProvider 和 TClientDataSet;哪个事件将在哪个组件中触发,表示查询已完成并且数据已准备好显示?

TIA, 不行

【问题讨论】:

    标签: delphi tclientdataset


    【解决方案1】:

    查看 TClientDataset 的 BeforeExecute 和 AfterExecute 事件。它们似乎符合您的需要。

    如果您需要 UI 在处理查询时做出响应,您可以查看 ProcessMessagess 或在单独的线程中执行查询并使用 OnTerminate 将检索到的数据传送到表单。

    【讨论】:

      【解决方案2】:

      由于这与 UI 相关(显示消息),我可能会使用 TClientDataSet 的 AfterOpen 事件。

      【讨论】:

        【解决方案3】:

        回想起来,很抱歉我发布了这个问题,因为答案非常简单,与事件无关。这是我的简单解决方案。

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

        当查询返回其数据时,程序控制移至查询打开后的语句,这会清除状态栏。

        我向那些回答的人道歉。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-02-07
          • 2023-03-17
          • 2011-10-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多