环境:delphi6.0 + ms sql server 2000 +win server2000 
c/s结构  客户机大约5-8台  同时对同一张表操作
开始程序正常  1-2小时后 客户机就会报错:"连接已超时"
重起服务器问题解决我是真的没办法了,请高手帮我分析一下原因!!!!

解决方案 »

  1.   

    可能有两个原因
    1。你的window的连接数过多。
    2。你的sqlserver的连接数过多。
      

  2.   

    1.建议程序中使用TadoDataset进行连接(不要用 Tadoquery)
    2.检查你的SQL语句,尽量简化,也可以考虑分成多次访问
      

  3.   

    3.尽量不要使用transaction !
      

  4.   

    使用ADOConnection是不是可以避免同一客户端的连接数多于2?
      

  5.   

    用ADO编程建议看看李维的那本ADO的书,会对ADO是如何干活的有所了解。
    只有5至8个客户端应该不算多吧
    如果是计算量真的很大、很多,把ADO组件的超时设长一些,或者。。干脆设成0算了,那就不超时了
      

  6.   

    我想可能是你每個FORM都用了adoconnection吧﹐如果是改成datamodule的吧
      

  7.   

    这个问题我遇见过,是因为你的程序太长的时间没有访问数据库,为了数据库的高性能,服务器将你的连接断开了,在sql server上有这方面的设定(听别人说的,我没找到),还有一种方法,就是让你的程序每个一段时间访问一下数据库,或者用离线方式,浏览数据。