为什么不能关闭一个开放的ADODB.Recordset?

时间:2016-02-01 14:59:18

标签: python adodb

我的Python脚本使用ADODB.Recordset对象。我使用ADODB.Command对象与ADODB.Parameter对象的集合来更新集合中的记录。之后,我检查记录集的状态,它是1,即adStateOpen。但是,当我调用MyRecordset.Close()时,我得到一个异常,抱怨该集合的当前状态中的操作无效。开放记录集可能处于什么状态会使其无法关闭它,我该怎么做才能解决它?

代码分散在几个文件中。我会一起做插图。

1 个答案:

答案 0 :(得分:0)

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

我经历ADODB.Command对象的所有这些rigarmarole的原因是ADODB.Recordset.Update()随机失败(或者在我看来似乎),抱怨"查询基于更新失败,因为无法找到要更新的行"。我从来没有能够预测何时会发生这种情况或找到一种可靠的方法来阻止它发生。发生这种情况时,我唯一的选择是使用构造完整的更新查询替换ADODB.Recordset.Update()调用,并使用ADODB.Connection或ADODB.Command对象执行它。