什么时候应该关闭记录集?

时间:2014-01-15 16:21:35

标签: mysql database excel-vba connection recordset

假设我将使用下面的子代码运行各种查询。我应该每次setclose recordset吗?或者setclose只与我的连接(cn)一起使用?如果我关闭连接,是否需要关闭我的recorset?

Sub QueryPC(ByRef ReturnArray() As Variant, COB As Date, PC As Variant, FileCode As String)
    Dim srtQry As String, tmpArray() As Variant

    Set rs = CreateObject("ADODB.Recordset")

    srtQry = "whatever"

    Set rs = cn.Execute(srtQry)

    If Not rs.EOF Then
        tmpArray = rs.GetRows: TransposeArray tmpArray, ReturnArray
    Else
        ReDim ReturnArray(0)
    End If

    rs.Close

End Sub

1 个答案:

答案 0 :(得分:1)

在代码中关闭查询中的rs是好的。更好的是,如果你对你的连接做了同样的事情!

规则 - 现在已经有好几年了 - 是尽快打开连接并尽快关闭。你显然已经将连接作为一个mudule级别或甚至更多的全局变量:这是不好的做法。您应该在使用它的地方创建它并关闭它。

没有太多的VBA样本这样做,可能是因为人们复制的VBA代码样本通常很旧,或者因为虽然编写样本的人擅长VBA,但他们不是全职开发人员。

干杯 -