作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用sdac,我可以让程序响应用户输入:
while Query.Executing do
begin
Application.ProcessMessages;
Sleep(1);
end;
最佳答案
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;
关于delphi - 在执行Anydac查询时如何保持程序响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14044428/
我已经使用 UniDac 很长时间了,决定转向 FireDac,因为它具有良好的异步方法,在继续使用后,我发现我的数据编辑不再起作用,它给了我一个错误: [FireDAC][Phys]-330. Ca
我正在从 Delphi 2007 + AnyDac 移动代码至Delphi XE4 + FireDac 。在 AnyDac如果所有空字符串都存储为 NULL ,以及 FireDac所有空字符串都像空字
背景: 我正在开发一个 SQLite 切片缓存数据库(类似于 MBTiles 规范),目前仅由一个表 Tiles 组成。具有以下列: X [INTEGER] - 水平瓷砖索引(不是 map 坐标)Y
我是一名优秀的程序员,十分优秀!