程序中有一function被反复调用,其中一句Set RecordSet=Connection.Execute(...)
在一台机子上执行没有问题,在另一台机子上执行总是在大概第50几次调用(每次都是同一处)的时候说RecordSet不能被用来打开别的表了。不知有谁遇到过这个问题,还望指教。
我觉得应该不是recordset对象没有释放的原因,因为我尝试过用close 和set..=nothing强制关闭,但出错依旧,而且每次都是在相同的地方出错。那么原因应该只有两个,一个是我此处的程序有问题,一个是Execute被调用的次数有限制。
但我的程序是反复调用相同的函数,前面执行没有问题,那应该这里也没有问题。还望高手指教

解决方案 »

  1.   

    另有详细情况请见另一帖
    http://expert.csdn.net/Expert/topic/1572/1572226.xml?temp=.4457666
      

  2.   

    ADO Error #   -2147467259
       Description   [Microsoft][ODBC Driver Manager] Driver's
                     SQLSetConnectAttr failed
       Source        Microsoft OLE DB Provider for ODBC Drivers   ADO Error #   -2147467259
       Description   Login Failed
       Source        Microsoft OLE DB Provider for ODBC Drivers可能是connection因连接时间过长而断开了。
    你试试
    recordset.open strSQL, strconnection
    用连接字符串而不是connection对象
      

  3.   

    感谢limit(梦锦) ,你说的方法似乎是管用的,原先出错的那行已经顺利执行了,但我还有一个问题,就是现在出错的地方变成了下面一处使用到connection对象的地方,
    Set recordset = connection.OpenSchema(...)
    这句中我如何替换掉connection对象呢,因为openschema似乎是connection对象才有的方法
    还望再次指教
      

  4.   

    那你就再定义一个局部的connection对象,
    用到的时候就
    connection.open strconnection
    set recordset=connection.openschema(...)