以下两种关闭记录集的方式哪种更好一些呀?(用 adstateopen 还是用 adstateclosed 属性判断)if rs.state = adstateopen then
    rs.close
end if
set rs=nothing

if rs.state <> adstateclosed then
    rs.close
end if
set rs=nothing
以上两种写法有区别吗?
可是我看到msdn上的代码大多是第一种呀?

解决方案 »

  1.   

    有老师告我,用adstateclosed属性判断后关闭较好,因为记录集的属性并不只有 asstateopen和adstateclosed两种,我也同意这种说法.可是为什么msdn,和其他的帮助资料上,关闭记录集时,都是用adstateopen这个属性来判断的呢?
    难道是这些设计者们想的不周道吗?按理说msdn上的代码应是很经典的呀.
    我是初学者,请给明示.
      

  2.   

    我用
    if(rs->State & adStateOpen)
    {
        rs->Close();
    }
      

  3.   

    我用
    if(rs->State & adStateOpen)
    {
        rs->Close();
    }
    ==========================
    谢谢,不仅你是这样用的,我也是这样用的.而且msdn上的示例代码也是这样写的.
    可是我不明白的核心问题是,这样写真的对吗?如果当时这个记录集的状态不是adstateopen ,而是其他几种状态呢?
    adStateConnecting 2 指示对象正在连接。 
    adStateExecuting 4 指示对象正在执行命令。 
    adStateFetching 8 指示正在检索对象的行。 
    如果按你的代码,这种情况下就不会执行记录集的关闭操作,而实际上开发者的本意也是希望执行close的,但却执行不到close.这个问题如何办呢?