就是简单的查询数据库工程,才几句代码的,
点窗体的关闭按钮,delphi会卡住一分钟,一分钟过后 就可以了,再次运行点关闭 又卡住了按ctrl+F2的方式关闭 又正常  不会卡住

解决方案 »

  1.   

    是不是有内存没释放或者泄露问题,用memproof检查一下
      

  2.   


    代码就一点 就三个控件 ADOConnection1,ADOQuery1,ComboBox1
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, ADODB;type
      TForm1 = class(TForm)
        ComboBox1: TComboBox;
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        procedure FormShow(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormShow(Sender: TObject);
    var
      i:integer;
    begin
      with  ADOQuery1 do
      begin
        sql.Clear ;
        sql.Add('select xh from xs');
        open;
        first;
        for i:=0 to recordcount-1 do
        begin
          combobox1.Items.Add(fieldbyname('xh').AsString );
          next;
        end;
        close;
      end;
    end;end.
     
      

  3.   

    不用delphi启动程序,直接双击生成的exe,退出的时候也会卡住吗?
      

  4.   

    直接exe 不会卡住啊,只有用delphi打开的时候 好像释放Adoconnection1就不会了
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    Adoconnection1.connected:=False;
    end;是这个原因吗?  Adoconnection1没关闭 才点几下 就卡?  我是2G内存
      

  5.   

    而且 我以前 都是这么写的,都没有关闭Adoconnection1怎么就这一两月 出现这样
      

  6.   


    但是不关 也不至于卡住一分钟吧?  就连接access
      

  7.   

    这和DELPHI应该没有关系,肯定是你电脑中其它程序有问题
      

  8.   

    或许就是因为之前数据表没多少数据
    现在数据量大了
    你在设计期就直接open数据库
      

  9.   

    没有啊 就几条数据 我在测试DBEdit的功能而已才几行代码 就新建个默认的delphi工程
      

  10.   

    跟踪一下可以不?估计是数据提交时,提交的等待,ADO控件提交要锁定才能完成,这个估计是等待锁定
      

  11.   

    1 LZdelphi是哪个版本?有印象以前看过类似的问题,好像delphi2009和6出现过。做个测试新建一个工程什么也不放,关闭同样问题出现,那就是属于delphi自身的bug,换个版本或者打补丁吧2 如果不是问题1,那么你新建一个工程,放一个adoconnection,然后手动配置一下Adoconnection1,看看连接sql时间和断开时间,如果会很慢,那问题出在局域网域服务器上,查询sql服务器的速度过慢的原因3 如果以上都不是
    你运行cmp,ping一下你的sql服务器看看有没有丢包,另外速度是不是小于128ms,如果不是,问题出在网线和交换机上
      

  12.   


    delphi7,连本机的数据库啊,
    而且只有点关闭按钮才会卡,在delphi环境按CTRL+F2 关闭正常 不卡在状态栏,右键点exe关闭 也是正常的 不卡
      

  13.   

    都是非正常关闭吧,跟踪下你的formclose事件里面都有什么,还有执行下adoconnection的close,看看慢不
      

  14.   

    procedure TForm1.FormShow(Sender: TObject);
    var
      i:integer;
    begin
      with ADOQuery1 do
      begin
        Close;
        sql.Clear ;
        sql.Add('select xh from xs');
        open;
        first;
        while not eof do 
        begin
          combobox1.Items.Add(fieldbyname('xh').AsString );
          next;
        end;
      end;
    end;end.代码改了一下。
      

  15.   


    代码改成procedure TForm1.FormShow(Sender: TObject);
    var
      I:Integer;
    begin
      with ADOQuery1 do
      begin
        Close;
        sql.Clear ;
        sql.Add('select xh from xs');
        try
          open;
          first;
          while not eof do 
          begin 
            combobox1.Items.Add(fieldbyname('xh').AsString );
            next;
          end;
        finally
          Close;
        end;
      end;
    end;
      

  16.   


    ACCESS数据库或者该数据表是不是打开被占用?
      

  17.   

    你尽量“跟踪”测试一下吧,也可能加载了“多余”的DLL