我做了一个数据软件,功能是连接局域网中一台SQL服务器,读取服务器中视图的数据连接方式是软件客户端没有使用SQL客户端,只是使用连接语句来连接服务器数据库连接语句如下:
ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;'+
                                 'User ID=sa;Initial Catalog=UFDATA_002_2009;Data Source=192.168.1.23';现在问题是,软件在使用的过程会提示"连接失败",重新开启软件后又一切正常.到底是什么原因造成,而又应如何解决呢?请大侠们多指教小弟.

解决方案 »

  1.   

    to:starluck 
    如果是网络问题,应该如何解决在断开后立即重连的问题呢?还请指教.
      

  2.   


    c/s 下出現這種問題你一定要接受數據集數據丟失的問題。
    看什麼情況而定,我是定時發一個 getdate(),  如果失敗了就重新連接。
      

  3.   

    ConnectionTimeout:=0;
    CommandTimeout:=0;
    应该数据量大时会提示超时,而不是连接失败,问题关键的地方就是提示了"连接失败"后,重新开启软件,操作又一切正常.
      

  4.   

    定時發一個 getdate()其实真的有点不明白.  
      

  5.   


    這樣子就不會超時了。定是發 getdate(),
     是這樣一個意思。
      try
      adoquery1.closer;
      adoquery1.sql.text := 'select getdate()';
      adoquery1.open;
     except
      raise;
     end;
      有點像TCP/IP中的心跳,在執行關執數據上傳前,這樣先探測下。
      

  6.   

    先ADOConnection1.close;一下
    然后ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;'+
                                     'User ID=sa;Initial Catalog=UFDATA_002_2009;Datarce=192.168.1.23';再ADOConnection1.open;试试。