打开数据库,一切正常,当关闭后,用SQL SERVER的“管理”-“当前活动”-“进程信息”察看当前进程,仍然可以看到该进程。但重新打开数据库后,又加了一个一抹一样的进程,由于是定时器操作,从现象上看,总有两个一模一样的进程,怎么回事,是ADO的毛病吗?但如果把数据库连接设成nothing,则进程消失,究竟怎么回事呢?

解决方案 »

  1.   

    没太看懂你的意思,但我猜可能会是这样.
    你在建连接的时候,可能是以下这样的模式:
    sub temp()
    set conn = new connection
    conn.open
    ...
    conn.close
    set conn = nothing
    end sub
    当你使用了new,那么conn所引用的connection对象会在你的子程序temp运行完之后依然存在,即使你使用了set conn = nothing(执行set conn = nothing语句,编译器只是将内存中实际的connection对象的引用次数减一,整个对象的删除是在整个程序结束的时候),而这个对象的存在将会影响到sql server中的某些进程。
      

  2.   

    ?但如果把数据库连接设成nothing,则进程消失,究竟怎么回事呢?
    ////
    因為你沒有釋放內存在connection  close掉以後還需要對connection set nothing才可以其實在ms的設計實務裡面也說過一個form 在unload 的時候不一定釋放內存,最後都用set from =nothing所以你不釋放recordset,connection你就會越來越佔用內存
      

  3.   

    if 打开
    则关闭
    else
    不管
    end if