我在程序中使用adodataset1连接sql2000数据库程序就1个按钮,点击后执行
try
adodataset1.close; 
adodataset1.commandtext:='select * from mytable';
adodataset1.open;
except
adodataset1.close;
end;
然后将查询结果显示到dbgrideh中,一切正常。此时,如果我禁用网卡(断开网络),然后再启用网卡后,点击按钮后,就一直提示‘连接失败’,必须要重新启动程序后又能正常,有什么办法避免吗?

解决方案 »

  1.   

    楼上说的对滴,偶一直这样用滴try
      adodataset1.close;  
      adodataset1.commandtext:='select * from mytable';
      adodataset1.open;
    except
            AdoDataSet1.Connection.Connected := False;
            AdoDataSet1.Connection.Connected := True;
    end;
      

  2.   

    可以先执行一条空语句,看是否有返回来判断重连,空语句如:Select 1
      

  3.   

    每次使用AdoDataSet或者ADOQuery前,重新设置它的Connection的Connected屬性false->true
      

  4.   


    如果adodataset1重来没有open过(网络一直是断开的),直接赋值AdoDataSet1.Connection.Connected =true,或者 false,会溢出出错,怎么办?
      

  5.   


    如果因为网络不稳定,时断时续,adodataset 重来没有open过,在使用前就设置它的Connection的Connected屬性false->true,会出错啊?
      

  6.   

    谢谢大家,方法可行原来要设置AdoDataSet或者ADOQuery的Connection的Connected屬性,必须是AdoDataSet或者ADOQuery使用了ADOConnection1才行。