ADO 如何获得数据更新通知 一个Recordset打开了一个记录集.当数据库中的数据改变时,recordset有没有办法及时获取通知?发现在adUseServer+adOpenDynamic状态下,当修改数据库数据时,recordset未触发任何事件. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Private WithEvents rsNew As ADODB.RecordsetPrivate Sub rsNew_WillChangeField(ByVal cFields As Long, ByVal Fields As Variant, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)End Sub 我说的数据被更新并不是指被这个recordset更新,而是被其他用户更新. 这个根本不是通知的问题,而是你应该在写入数据(C)前把从数据库读取的数据(B)和当前数据库内的值(A)做比较,如果A和B相等,说明没有人写入过,C可以放心写入;如果A和B不相等,则说明已经有人写入过了,C不能写入,需要提取最新的数据,再最新数据上再更改 对,一开始思路是这样的.但是这样操作成本太高.首先在编辑B前要把B另存一份(多一份内存空间).在提交前还以再读取一份A(又多一份内存空间,而且还要重新读取).要比较A和B的异同也不是那么容易.对于有一定数据量的情况下,要逐行逐列去对比,成本太高了.所以我希望在保存前,能直接知道记录是否已经发生改变. http://www.cnblogs.com/ayi30/archive/2007/03/28/691399.html这篇文章介绍的比较详细,你可以看下 可以试试看看别人更新的时候,这个事件是否执行,俺也不是指"这个recordset更新",游标类型adOpenDynamic begin work;commit work;informix的 当编辑的数据被其他用户更改时,执行Update会报错。这算是最有效的通知。 [向[url=http://hi.csdn.net/all]CSDN[/url]提问]我的帖子怎么了? VB, 接手别人的工程,关于ceil未定义 如何通过命令来取消窗口的放大功能啊??? 50分:VB调试器-点击按钮后执行text1里输入的N行VB语句 關於print的簡單問題!!! 怎么让一个方法交给系统去做呢,就是让它给后台去做? 高手快来啊! 请问在VB中如何做COM组件? 如何截取键盘刚刚输入的内容,但不是截取键值,而是输入的内容(包括中文内容)? 如何才能揽到活? 如何在filelistbox控件上添加SCROLL滚动条 高手帮忙修改下程序..
Private Sub rsNew_WillChangeField(ByVal cFields As Long, ByVal Fields As Variant, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)End Sub
首先在编辑B前要把B另存一份(多一份内存空间).
在提交前还以再读取一份A(又多一份内存空间,而且还要重新读取).
要比较A和B的异同也不是那么容易.对于有一定数据量的情况下,要逐行逐列去对比,成本太高了.所以我希望在保存前,能直接知道记录是否已经发生改变.
commit work;
informix的