为什么不能关闭打开 ADODB.Recordset?

Why can't a close an open ADODB.Recordset?

我的 Python 脚本使用 ADODB.Recordset 对象。我使用 ADODB.Command 对象和 ADODB.Parameter 对象的集合来更新集合中的记录。之后查看recordset的状态,是1,也就是ad​​StateOpen。但是当我调用 MyRecordset.Close() 时,我得到一个异常,抱怨该操作在集合的当前状态下无效。打开的记录集处于什么状态会导致关闭它无效,我该如何修复它?

代码分散在几个文件中。我会努力制作插图。

是的,这就是问题所在。一旦我更改了一个记录集的 ADODB.Field 对象的值,我必须使用 ADODB.Recordset.Update() 更新记录集或调用 CancelUpdate()。

我要经历 ADODB.Command 对象的所有这些繁琐的原因是 ADODB.Recordset.Update() 随机失败(或者在我看来如此),抱怨 "query-based update failed because row to update cannot be found".我从来无法预测这种情况何时会发生,也无法找到一种可靠的方法来防止这种情况发生。发生这种情况时,我唯一的选择是用构建完整的更新查询替换 ADODB.Recordset.Update() 调用,并使用 ADODB.Connection 或 ADODB.Command 对象执行它。