环境:
C/S两层架构的程序
数据库:SQL2008
ADO连接:ADOConnection
应用:大部分情况下是局域网应用,但有小部分的外网远程访问需求,部分客户端是需要在外地远程访问数据库服务器如果是局域网内访问,打开窗体很长时间不动再接着操作,程序运行没问题如果改成是从远程访问数据库服务器,1~2分钟内正常操作正常,如果在打开数据编辑窗体后,中间间隔几分钟没有处理,晚点再接着录入数据,就会报ADO错误:cannot perform this operation on a closed dataset,这种情况下只能退出系统,重新登陆谢谢

解决方案 »

  1.   

    目前所有的数据操作都是使用数据模版上的一个固有ADOConnection1进行连接,如果更改成每次执行SQL操作时进行动态创建ADOConnection,这样是否可行呢?
      

  2.   

    不管你是用程序连远程电脑还是用Windows自带的远程连接,只要一段时间内不操作都会断掉的(估计这样的设计初衷是好的)。我觉的可以这样,你可以在程序中稍微控制一下,只要程序与远程数据库有动作,我想应该不会断掉的。 
      

  3.   

    一分鐘一次select getdate()資源應該消耗不多的吧。
      

  4.   

    你可以做个服务程序,监听数据库连接标志。或者像个session一样都行。不过如果外网网络信号弱的话还是使用短会话,这样也可以减小服务器压力。