0

我正在调用存储过程来生成 ADO 记录集,并且我希望能够在输出数据之前更新数据(但不要将这些更新写回数据库)。

这甚至可能吗?如果可以,怎么做?

我尝试了许多游标和锁定类型,但它们要么立即出错,要么在我尝试更新记录集字段时出错。

io_oRecordSet.CursorLocation = adUseClient
io_oRecordSet.Open oDataCmd, , adOpenStatic, adLockOptimistic, adCmdStoredProc
... iterate through RS ...
io_oRecordSet("myCol").value = "foo"

这会产生以下错误

Microsoft 光标引擎错误“80040e21”

多步操作产生错误。检查每个状态值。

从我所见,我怀疑 ADO 可能不喜欢数据来自存储过程,因为它不知道如何进行数据库更新。

4

1 回答 1

1

如果您绝对不需要更新数据库,则可以使用断开连接的 Recordset。只需确保您使用客户端游标并将 Recordset 的ActiveConnection属性设置为Nothing在您打开它之后。

于 2013-03-28T07:30:05.730 回答