关于Recordset持久化的问题

fj182 2006-02-27 11:52:04
用Recordset.Save方法来持久化Recordset时,我希望只保留更改过的记录,即Filter=AdFilterPendingRecords,但并没有达到预期的效果,但MSDN上讲的可以:
如果 Filter 属性影响 Recordset,则只保存经过筛选的行。如果 Recordset 具有分级结构,那么将保存当前子 Recordset 和它的子 Recordset,但不是父 Recordset。
百思不得其解,请教高手,谢谢。
...全文
119 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fj182 2006-03-11
唉!这个问题困扰了我好久阿。
看来还是从其他方面考虑了,谢谢各位的热心帮助。
回复
zlt982001 2006-03-11
这确实是一个问题,目前善无妥善解决方法,Filter 只是达到暂时过滤的目的,持久化输出时仍然是输出整个记录集,解决的方法:
1:自己写持久化输出的方法。
2:将过滤后的数据通过循环添加到一个新的数据集,再进行save.
回复
fj182 2006-03-05
呵呵,尽信书则不如无书

这个可是官方资料啊老大。
回复
rainstormmaster 2006-03-04
//MSDN上骗人:如果 Filter 属性影响 Recordset,则只保存经过筛选的行。

呵呵,尽信书则不如无书
回复
fj182 2006-03-04
zlt982001(乐天):谢谢你的热心帮助。
Recordset为客户端游标,批更新模式时,如果设Filter为adFilterPendingRecords确实能够影影响Recordset里面的东西,但是持久化以后你会发现Filter没起作用,我试了N次了,郁闷得不行。
MSDN上骗人:如果 Filter 属性影响 Recordset,则只保存经过筛选的行。
回复
zlt982001 2006-03-03
我来了,是可以的
必须是adLockBatchOptimistic,adUseClient
才能使用 rs.Filter = adFilterPendingRecords 过滤出来
因为该参数只能过滤修改过但是没有上传到服务器的数据

如下


rs.CursorLocation = adUseClient
rs.Open "select * from dirset ", cn, adOpenKeyset, adLockBatchOptimistic


rs("DirName") = 1111
rs.Update



rs.Filter = adFilterPendingRecords
MsgBox rs.RecordCount
rs.Close
回复
fj182 2006-03-03
郁闷,帖子沉了
坛子里的星星,能够帮忙就帮帮忙。
回复
fj182 2006-03-01
高手不要潜水,帮帮忙啦。
回复
fj182 2006-03-01
自己做持久化,我有想过,不果效率我想绝对赶不上ADO本身。
等待高手ing...
回复
xiaoyaolz 2006-03-01
写个类自已比较一下吧
回复
ZOU_SEAFARER 2006-02-28
顶一顶
回复
willdavis 2006-02-28
关注一下。
回复
相关推荐
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2006-02-27 11:52
社区公告
暂无公告