当在程序中用ADO连接数据库,是否需要在每个如:
SET FDS=NEW ADODB.RECORDSET,调用过FDS以后加上FDS.CLOSE.
当用GDB.EXECUTE 后,是否也要关闭GDB?
具体怎样操作?

解决方案 »

  1.   

    在模块里定义:
    Public CnnDB As New ADODB.Connection之后打开这个连接,然后每一个窗体都调用这个连接,不用每次都打开和关闭,到主程序退出进才关闭就行了。
      

  2.   

    如果recordset就最好不要用到全局变量,因为这样才程序的维护性不好,而且太多的recordset会浪费内存。
      

  3.   

    同意楼上  的,RS 最好不要全局的,CONN用全局  的。在ADO中CONN是比较费资源的。
      

  4.   

    conn放在模块中定义rs用完关闭
      

  5.   

    Option Explicit'工程->引用->Microsoft ActiveX Data Objects 2.0 Library (后面为版本号)
    Dim rs As New ADODB.RecordsetPrivate Sub Combo1_Click()
        if rs.State = adStateOpen then rs.close
        rs.Open "SELECT * FROM TABLENAME WHERE NAME = '" & txtName.Text & "'", cn, adOpenDynamic, adLockOptimistic
        If Not rs.EOF Then
            Label1.Caption = rs!ID
            Label2.Caption = rs!Memo
        End If
       
        rs.AddNew
        rs!ID = "编号"
        rs!Memo = "备注"
        rs.Update
    End SubPrivate Sub Form_Load()
        cn.ConnectionString = "DSN=SCM_ACCESS;pwd=;uid="
        cn.Open
        '查询字符串可以上这里查
        'http://www.connectionstrings.com/
    End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    On Error Resume Next
        rs.Close
        Set rs = Nothing
        cn.Close
        Set cn = Nothing
    End Sub在模块中:Public cn As New ADODB.Connection
      

  6.   

    最好每次关闭引用set rs=nothing
                    set conn=nothing
    否则在客户端超过三十时服务器会变得很慢。
      

  7.   

    在模块里定义:
    Public CnnDB As New ADODB.Connection之后打开这个连接,然后每一个窗体都调用这个连接,不用每次都打开和关闭,到主程序退出进才关闭就行了。在引用之前判断是否建立连接就行了
      

  8.   

    最好要关上 如果你转向.net的话 如果写代吗不规范 会有很多麻烦的
    经验之谈
      

  9.   

    关闭连接的时候,最好显式的先关闭:
    conn.Close
    Set conn=Nothing
    因为在没有关闭连接而直接Set它为Nothing,只是清理了客户端的资源,而服务器端的资源还没有释放.
      

  10.   

    最後關閉,但是recordset最好是用完就關閉,當然還有個set recordset=nothing釋放內存的過程