我正在调用存储过程来生成ADO记录集,我希望能够在输出数据之前更新数据(但不要将这些更新写回数据库)。
这是否可能,如果是这样,怎么办?
我尝试了许多游标和锁定类型,但它们要么立即出错,要么在我尝试更新记录集字段时出错。
io_oRecordSet.CursorLocation = adUseClient
io_oRecordSet.Open oDataCmd, , adOpenStatic, adLockOptimistic, adCmdStoredProc
... iterate through RS ...
io_oRecordSet("myCol").value = "foo"
这个产生以下错误
Microsoft Cursor Engine错误'80040e21'
多步操作产生错误。检查每个状态值。
从我看到的情况来看,我怀疑ADO可能不喜欢数据来自存储过程,因为它不知道如何进行数据库更新。
答案 0 :(得分:1)
如果您绝对不需要更新数据库,则可以使用disconnected Recordset。只需确保使用客户端游标并在打开后将Recordset的ActiveConnection
属性设置为Nothing
。