Visual Basic 6 ADO 更新问题
我一直在使用一个通过 ADODB 与数据库交互的旧应用程序,并且对记录的大多数更改都遵循相当简单的模式:
- 从查询创建记录集
- 对记录集调用进行各种更改 对记录
- 集进行更新。
我想知道的是,对于 ADODB 记录集,是否可以提取“更改”。更改记录集的逻辑是分散的,我需要的只是更改,而不是如何更改......
任何跟踪记录集中更改的建议(在代码中,数据库上的触发器或类似的东西在这里没有用)
I've been working with a Legacy application which interacts with a database through ADODB, and most of the changes to records follow a fairly straightforward pattern of:
- Create a Recordset from a query
- Make various change to the recordset
- call .Update on the recordset.
What I'm wondering is, with ADODB recordsets, is there anyway to extract the 'changes'. The logic which changes the recordset is scattered about, and all I need is the changes, not how it was changed...
Any suggestions for tracking changes in a recordset (in code, a trigger on the DB or similar is no use here)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我个人从未使用过此功能,但文档指出您可以将 rs.Filter 属性设置为 adFilterPendingRecords 来显示已更改但尚未发送到服务器的记录(仅适用于批量更新模式)。
或者,您可以迭代记录集中的所有记录,如果
.Status
属性设置了adRecModified
标志,则您可以比较.Value
和.UnderlyingValue
每个字段,看看它们是否不同。I personally have never used this functionality, but the documentation states you can set
rs.Filter
property toadFilterPendingRecords
to show records that have been changed but not sent to the server yet (only applies to batch update mode).Or, you could iterate through all records in a recordset, and if the
.Status
property has theadRecModified
flag set, then you can compare.Value
and.UnderlyingValue
of each of the fields to see whether they are different.