gpt4 book ai didi

delphi - 在执行Anydac查询时如何保持程序响应?

转载 作者:行者123 更新时间:2023-12-03 18:27:45 25 4
gpt4 key购买 nike

使用sdac,我可以让程序响应用户输入:

while Query.Executing do
begin
Application.ProcessMessages;
Sleep(1);
end;


如何使用 anydac查询实现相同的代码(没有类似的功能)?

我正在使用delphi xe2和anydac v6。

最佳答案

AnyDAC支持不同的执行模式。要检查当前的操作状态,请使用ADQuery1.Command.State。这是伪代码(我这里没有Delphi):

ADQuery1.ResourceOptions.CmdExecMode := amAsync;
ADQuery1.Open;
while ADQuery1.Command.State = csExecuting do
begin
// This is NOT RECOMMENDED
Application.ProcessMessages;
Sleep(1);
end;


但是,由于您在 while块中唯一要做的就是处理GUI消息,所以我认为最好的选择是使用 amNonBlocking模式,该模式将等待查询完成(因此避免使用 while块),但是不会阻止GUI(考虑到它确实会忽略键盘和鼠标事件)。

ADQuery1.ResourceOptions.CmdExecMode := amNonBlocking;
ADQuery1.Open;


有关更多信息,请参见开发者网站中的文档: Asynchronous Execution

关于delphi - 在执行Anydac查询时如何保持程序响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14044428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com