在VB6中的经典ADO中,在来自外部源的记录集中,例如Set Rs = Conn.Execute("SELECT * FROM Table")
,每个Field都有OriginalValue
属性,因此在更新记录后您仍然可以看到每个领域的原始价值是什么。
但是,我正在使用如此构建的记录集:
Set Rs = New ADODB.Recordset
Rs.Fields.Append "Name", adVarChar, 100, adFldMayBeNull
Rs.Open
Rs.AddNew
Rs.Fields("Name").Value = "rudolph"
Rs.Update
但是在此记录集中,即使我更改字段的值,OriginalValue属性也会保持空白。除了将整个记录集抛出到XML流,修改XML以及重新创建记录集以使OriginalValue具有我想要的值之外,还有什么方法吗?
我正在处理数据更改的一些预览,其中我有两个记录集,一个表示当前值,另一个表示原始值。当需要比较以查看某些内容是否已发生变化时,有两个对象而不是一个具有两个属性的对象,这是一种痛苦。
我知道记录集中有元数据,关于它的源表是什么,它是否可更新,主键是什么,以及提供程序支持的属性类型(例如NextRecordset
),但其中一些属性可能很难在我正在使用的伪造记录集中访问。
此外,是否需要某种锁定设置,例如adLockBatchOptimistic
?
答案 0 :(得分:1)
替换
行rs.Update
带
rs.UpdateBatch