回 帖 发 新 帖 刷新版面

主题:记录集一定要放入数组吗?

用VB做了一个数据库管理软件,用SQL语句得到一个用户的一些信息,

如:

sqlstring = " select * from 表GKCS where  编号>= " & db_N & "  and  编号 in(select min(编号) as 编号  from 表GKCS group by 姓名 having(count(*)>=1))" & " order by 编号  asc"
 If rs.State = adStateOpen Then rs.Close
 rs.Open sqlstring, cn, adOpenStatic, adLockOptimistic


形成一个记录集rs。用rs.movenext,rs.moveprevious,一条一条翻看记录,翻到了第3条。这时,需要新开一窗口,按别的条件再新开一个记录集。 回到原来的页面时,需要继续按刚刚的顺序看第4条记录。

我的实现方式是:记录下原来的记录的序号。回到原来的页面时,再通过以上语句得到原来的记录集,执行rs.movenext3次,然后显示出来。就可以让用户得到连续的感觉了。但是发生过死机,不知是否是这样的方式不好。


朋友建议的方式:将每次RS后的结果放入一个数组中,马上关掉数据库。这样安全。就是换窗口,也能按原来的次序上下看记录。
 


请问大家都是如何做的。

谢谢。


回复列表 (共7个回复)

沙发

得到rs,不用放进数组。rs本身是一个集合,比数组还高级点。
至于第二次查询,做就是了。
当然每个记录集生成后,就关闭数据库的连接也好。

板凳


得到rs,不用放进数组。rs本身是一个集合,比数组还高级点。
至于第二次查询,做就是了。
当然每个记录集生成后,就关闭数据库的连接也好。


------------------
rs本身是一个数组。


但是我要进行另一个数据集的建立时,原来的数据集就被破坏了。

我下次再进来时,要再新建rs, 还要接着原来的位置向下查,因此在上次就要记录原来的位置。

这样的方式经很多人试了,说容易导致程序退出。

因此大家都推荐将rs放入一个数组中。








3 楼

推荐将rs放入一个数组中?

4 楼

咳,记录集,你可以声明两个阿,
简单的说,就像两个变量

5 楼

是的,可以建RS1,RS2,RS3嘛。数据集是个对象,比数组要高级,它有方法的,有属性的,但你不知道它具体是什么东西构成的

6 楼

这是记录的历史查询,查询的条件用表保存起来就行。可重复使用。

7 楼

1 可以使用多个Recordset
2 可以用Recordset的Bookmark属性

我来回复

您尚未登录,请登录后再回复。点此登录或注册