关于Recordset持久化的问题

fj182 2006-02-27 11:52:04
用Recordset.Save方法来持久化Recordset时,我希望只保留更改过的记录,即Filter=AdFilterPendingRecords,但并没有达到预期的效果,但MSDN上讲的可以:
如果 Filter 属性影响 Recordset,则只保存经过筛选的行。如果 Recordset 具有分级结构,那么将保存当前子 Recordset 和它的子 Recordset,但不是父 Recordset。
百思不得其解,请教高手,谢谢。
...全文
180 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
关注一下。

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧