我用D7+Ado些了一个程序。可是网络环境很差,当网络断开而又重新连通时,
程序就会出错。只能将ADOconnection.Close,再open。但这样的话前台已经修改的
数据没有了。能不能象bde那样,只要网络就能自动恢复?

解决方案 »

  1.   

    在网络断开后重新连接要用ApplicationEvents控件来实现,在ApplicationEvents1Exception事件中写连接代码就行了,要具体列子我有,我已经实现网络重连。[email protected]
      

  2.   

    不要去调用ADOconnection的OPEN方法.如果它处于CLOSE状态,你下次执行操作的时候,它自
    动会重连接.如果网络出问题,你则要主动让它置于CLOSE状态.try
     // 数据库处理代码
    except
      //这儿抓住了异常一定要把ado连接CLOSE掉.end;
      

  3.   

    你可以用timer事件控制,如果连接好,就让timer的enable:=false
    if 断开 then
    timer。enable:=true;
      

  4.   

    如何用ApplicationEvents控件来实现呢?
      

  5.   

    不断的adoconnection.open(); ???????????关注
      

  6.   

    不断的adoconnection.open(); 前台界面的数据会丢失的
      

  7.   

    try
     // 数据库处理代码
    except
      //这儿抓住了异常一定要把ado连接CLOSE掉.end;
      

  8.   

    try
     // 数据库处理代码
    except
      //这儿抓住了异常一定要把ado连接CLOSE掉.
    end;
    这样操作,辛辛苦苦输入的数据,如果还没有applyupdate,数据就丢失掉了
      

  9.   

    现在问题是我想保存前台的数据。当adoconnection设为close时,前台的数据
    也会丢失。而我的数据是用applyupdate一次保存一批的修改。所以我不想用
    adoconnection.close。
    但如果不将adoconnection.close,当网络恢复连接时,当用户进行操作时,
    系统会一直认为网络故障,不能对数据进行操作。
      

  10.   

    呵呵..当你网络链路出问题..
    这时候保存不了数据怎么能怪在抓异常时候adoconnection.close呢?在网络出问题,你客户端可以从两方面处理..
    1,将客户端在内存中继续保持未提交数据..
    2,将CLIENTDATASET数据保存到磁盘文件中..