一个查询执行了很长时间,但中途想让它停止,如何通过delphi使查询终止,可否给写两行代码示意一下。一般要通过一个按钮点击事件来响应命令,可是查询一开始执行就无法在界面进行任何操作了,而且这种情况也不能用application.processmessage,如何实现?

解决方案 »

  1.   

    想让delphi程序终止本身提交的查询,好想只能在调用查询时,计时查询所用时间了,定一个参数,如果用时超过这个参数,就终止查询。
    没有具体试过。不过应该可以吧。
      

  2.   

    长时间没有反应,应该优化一下SQL
      

  3.   

    你说的问题 好象不用去停止查询 用个线程看可否解决: 
    procedure savedTimer(pt: Pointer);stdcall;
    begin
      ......
    end;procedure TForm1.queryData(Sender: TObject);
    var
      hThread:Thandle;//定义一个句柄
      ThreadID:DWord;
    begin
      hthread:=CreateThread(nil,0,@savedTimer,nil,0,ThreadID);
    end;
      

  4.   


    你要特别小心你的SQL的优化一点变化乘以百万级的是很可观/可怕的
      

  5.   

    sql已经优化到极致了,主要是要满足客户随时要终止查询的需求,服务器已经是几十万的HP服务器了