delphi7 + sqlserver 2000 做的两层结构(用ado直接连的) 的程序为什么会经常提示‘连接失败’,这个问题以经烦了我好久了都没找出原因。大家帮我想想哪里会出问题。

解决方案 »

  1.   

    Sql Server不在本机上吗?试着配置一下“数据源ODBC”
      

  2.   

    Sql Server和客户端都在本机上,也会出现这个错误?
    难道Sql Server停止了???
      

  3.   

    只是说偶儿。每次是能够运行程序也能正常使用。只是一会就断了。 
    我用事件探查器看了下总是一会就出现 audio LOGOUT 
    是不是我哪里没设好呀
      

  4.   

    我也用过delphi + SQL server  没有遇到楼上所说的现象
      

  5.   

    我最近也被这问题困扰,
    其实就是掉线后重新上线如何把目前的DATASET的数据更新到数据库服务器的问题
    我在数据操作基窗体的CRETAE事件中写:
     try
       dmClient.adocnClothing.Close;
       dmClient.adocnClothing.Open;
       QBaseInfo.Open;
       QBaseInfo.Connection:=nil;
     except
      Raise Exception.Create('数据连接失败!请检查网络或配置!');
     end;
    因为已经在打开某数据窗体时把数据集的CONNECTION设为NIL了,所以把ADOCONN关掉并不会影响。而在本地修改完数据后提交则用一个函数:
    function  TdmClient.commitUpdate(adocon:TADOConnection;DataSet:TCustomADODataSet):Integer;begin
     commitUpdate:=1;  try
       DataSet.Connection:=Nil;
       adocon.Close;
       adocon.Open;
       DataSet.Connection:=adocon;
       adocon.BeginTrans;
       DataSet.UpdateBatch;
       adocon.CommitTrans;
      except
       adocon.RollbackTrans;
       commitUpdate:=0;
      end;
    end;
    因为即使目前网络掉线。ADOCONN也检测不到,所以打开时就提交连接失败了。
    要显式调用ADOCONN.CLOSE来关闭再打开。