Visual Basic 6 ADO 更新问题

发布于 2024-09-03 06:42:40 字数 255 浏览 8 评论 0原文

我一直在使用一个通过 ADODB 与数据库交互的旧应用程序,并且对记录的大多数更改都遵循相当简单的模式:

  1. 从查询创建记录集
  2. 对记录集调用进行各种更改 对记录
  3. 集进行更新。

我想知道的是,对于 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:

  1. Create a Recordset from a query
  2. Make various change to the recordset
  3. 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只为一人 2024-09-10 06:42:40

我个人从未使用过此功能,但文档指出您可以将 rs.Filter 属性设置为 adFilterPendingRecords 来显示已更改但尚未发送到服务器的记录(仅适用于批量更新模式)。

或者,您可以迭代记录集中的所有记录,如果 .Status 属性设置了 adRecModified 标志,则您可以比较 .Value.UnderlyingValue 每个字段,看看它们是否不同。

I personally have never used this functionality, but the documentation states you can set rs.Filter property to adFilterPendingRecords 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 the adRecModified flag set, then you can compare .Value and .UnderlyingValue of each of the fields to see whether they are different.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文