对象调用Close 方法和null的分别

关闭对象的Close方法主要用于释放资源,不会从内存中删除对象。关闭Connection对象会关闭相关Recordset,同时Command对象的ActiveConnection设为Nothing。关闭Recordset会释放数据,但在事务进行中关闭会导致错误。调用Close前应确保无未完成的编辑操作,否则可能丢失数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用 Close 方法可关闭 Connection 对象或 Recordset 对象以便释放所有关联的系统资源。关闭对象并非将它从内存中删除,可以更改它的属性设置并且在此后再次打开。要将对象从内存中完全删除,可将对象变量设置为 Nothing

Connection

使用 Close 方法关闭 Connection 对象的同时,也将关闭与连接相关联的任何活动 Recordset 对象。与正在关闭的 Connection 对象相关联的 Command 对象将被持久保留,但不再与Connection 对象关联,即它的 ActiveConnection 属性将被设置为 Nothing,同时,Command 对象的 Parameters 集合将清除任何提供者定义的参数。

可以随后调用 Open 方法重新建立与相同数据源或其他数据源的连接,关闭 Connection 对象后,调用任何需要打开与对数据源连接的方法都将产生错误。

当连接上有打开的 Recordset 对象时,关闭 Connection 对象将回卷所有 Recordset 对象的挂起更改。在事务进行过程中显式关闭 Connection 对象(调用 Close 方法)将产生错误。如果在事务进行过程中 Connection 对象超出范围,那么 ADO 将自动回卷事务。

Recordset

使用 Close 方法关闭 Recordset 对象的同时,将释放关联的数据和可能已经通过该特定 Recordset 对象对数据进行的独立访问。随后可调用 Open 方法重新打开具有相同属性或已修改属性的Recordset。在 Recordset 对象关闭后,调用任何需要活动游标的方法将产生错误。

如果正在立即更新模式下进行编辑,调用 Close 方法将产生错误,应首先调用 Update 或 CancelUpdate 方法。如果在批更新期间关闭 Recordset 对象,则自上次 UpdateBatch 调用以来所做的修改将全部丢失。

如果使用 Clone 方法创建已打开的 Recordset 对象的副本,关闭原始 Recordset 或其副本将不影响任何其他副本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值