我的程序有下列语句用于连接 SQL Server 数据库并获得数据:if adquery1.State <> dsInactive then adquery1.Close;
adquery1.ConnectionString := connectstring1;
adquery1.SQL.Clear;
adqqury1.SQL.Add('Select * from table1');
adquery1.Open;按刷新按钮,可重新执行上述语句。当数据库连接中断时,希望按刷新按钮执行上述语句,重新连接数据库。但实际上在数据库连接中断时,必须完全退出并重新启动程序才可重新建立与数据库的连接,否则总也连接不上数据库。
请问这可能是什么原因。

解决方案 »

  1.   

    很简单的东西,非要搞那么复杂,记住,越是简单的东西,越稳定,越安全不要想的太复杂。。这样,一定不会错》with adoquery do
    begin
        close;
       sql.clear;
       sql.add();
       open;
    end;
      

  2.   

    单独加一个TadoConnection,如为 Adoconnection1,Adoconnection1.KeepConnection设为True;
    adoconnection1.connectstring :=connectstring1;
    Adoconnection1.connect := true; // 连接
    AdoQeury.Connection := AdoConnection1;在应用结束时Adoconnection1.connect := False; //挂断
      

  3.   

    adquery1.Close;
    adquery1.SQL.Clear;
    adqqury1.SQL.Add('Select * from table1');
    adquery1.Open;