今天刚刚发现的一个现象,以前从来没注意过,应该是个隐藏的Bug如:
public cn as ADODB.Connection我以前把cn定义为全局变量,程序开始时建立数据库连接,中间就一直使用该连接操作数据库,程序关闭时结束连接但今天发现这样有问题,我在一个产生报表的函数中,多次调用adoRs.open strSql,cn,并在循环中调用adoRs.open,最后发现这不是无限可以打开的,有一个极值,到了后就无法连接数据库了,程序会中断在adoRs.open这句,如果等待一段时间,就又可以继续执行。
adoRs 为ADODB.Recordset,每次调用完后都有close我就想知道这个极值是多少?百度上无法查到现在我创建了第二个连接,比如cn2,把其中一些adoRs.open用cn2连接去调用,这样程序就没问题了你们有碰到过这问题吗?那个连接的极值到底是多少?有比较规范的调用数据库的样例程序可以发下吗?

解决方案 »

  1.   

    http://download.csdn.net/detail/veron_04/3827200
      

  2.   

    access应该很小,但是sql server可以上千上万http://stackoverflow.com/questions/5367668/how-many-users-can-open-a-connection-to-microsoft-access
    据说但进程最大是64,对于access来说。
      

  3.   

    遇到这种问题多使用google,晓得百度垃圾什么也搜不到你还用!
      

  4.   

    google经常打不开,慢慢就没再用了,貌似google上这个问题也无解
      

  5.   

    我不就找到了。google打不开,你花10元/月买个代理或者VPN就搞定了。
      

  6.   

    无限占用资源的编程都是耍流氓!你的报表数据是多表查询吧。
    这个用 JOIN 连接只要一次查询,报表通常有分组功能,根本不需要反复查询。
      

  7.   

    报表数据都是从各种表中取出数据来,再由程序根据业务要求加工处理的,哪可能一个JOIN就能搞定的,可能是我水平还不够吧