Vb6 用新ID更新断开连接的ADO记录集ID字段

Vb6 用新ID更新断开连接的ADO记录集ID字段,vb6,ado,Vb6,Ado,使用ADO和断开连接的记录集更新旧的VB6应用程序。除了一些旧的ADODC对象,我也在更新以使用断开连接的记录集之外,一切正常。我已经编写了插入新记录并返回新ID值的代码,这非常好 但是,当我尝试更新当前的新记录时(在记录集中通过.AddNew),我得到“多步骤操作生成的错误。检查每个状态值。” 我可以很好地更新其他专栏。而不是记录集中的SQL标识列。我只想让以后对该专栏的引用现在有正确的信息 对该错误的搜索似乎表明可以更新该值,但我尝试了CVar(newID),仅使用newID,但似乎没有任何

使用ADO和断开连接的记录集更新旧的VB6应用程序。除了一些旧的ADODC对象,我也在更新以使用断开连接的记录集之外,一切正常。我已经编写了插入新记录并返回新ID值的代码,这非常好

但是,当我尝试更新当前的新记录时(在记录集中通过.AddNew),我得到“多步骤操作生成的错误。检查每个状态值。”

我可以很好地更新其他专栏。而不是记录集中的SQL标识列。我只想让以后对该专栏的引用现在有正确的信息

对该错误的搜索似乎表明可以更新该值,但我尝试了CVar(newID),仅使用newID,但似乎没有任何效果

记录集设置为

    .CursorType = adOpenStatic
    .CursorLocation = adUseClient
    .LockType = adLockOptimistic
我可以对每个实例进行黑客攻击,以某种方式用新对象重新加载整个记录集,但这似乎是一个很大的解决办法。在大多数情况下,newid在重新加载之前不会被使用。但是我正在尝试复制一个连接的ADODC的操作,它将保存记录并用新id刷新自己


有什么选择吗?

Hmmm。。。adOpenStatic表示只读。。。您应该尝试adOpenKeySet或adOpenDynamic。谢谢@EddiGordo,但不幸的是,adOpenStatic是客户端断开连接的记录集的唯一选项。我还有一个大型VB6应用程序,我在其中执行与您尝试执行的相同操作。我在更新记录集中的标识列时没有任何问题。我看到的唯一区别是我的锁类型是
adLockBatchOptimistic
@BrianMStafford-我希望它能起作用。。。同样的问题:“多步骤操作生成错误。请检查每个状态值。”您是否也使用OpenStatic并在加载后将ActiveConnection设置为nothing?是的。与您的配置完全相同。