如何知道记录集rs现在处于第几条记录?

imur01 2003-12-12 03:19:01
其中cn是连接数据库
那个rs是rs.open "select * from TableName",cn

请问:如何知道记录集rs现在处于第几条记录?
请教请教!
...全文
192 点赞 收藏 18
写回复
18 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lk_cool 2003-12-15
比较赞成使用自己计算;

if not rs.eof then
rs.movefirst
else
exit sub
end if

i=0

while not rs.eof
i=i+1
rs.movenext
wend
回复
jelly1102 2003-12-15
同意楼上的
回复
yangfanatcsdn 2003-12-15
rs.AbsolutePosition 不能总是保证返回正确地值。
出于效率的考虑,记录不总是一次性的全部返回到记录集。
连接,及记录集本身的属性设置都可能导致此类问题的发生。
回复
jelly1102 2003-12-15
你在算什么,记录条数么?用rs.RecordCount不就行了么。或者用“select count(*) from tablename”也可以。不同的数据库引擎对于记录的存储方式不同,不同的查询方式得到的记录顺序也不同,你想知道目前处于哪条记录,读出来看看不就行了么。
回复
liberte 2003-12-14
rs.AbsolutePosition
回复
jelly1102 2003-12-14
你的问题不对,从数据库原理来讲,关系型数据库中的记录是没有顺序的,所以你应该问“如何知道rs现在指向哪条记录”。你可以在数据库中加一个自动增加的索引字段,查询时按照该字段排序,读取时取出该字段就行了。
回复
mmcgzs 2003-12-12
RS用conn,1,1打开
回复
mmcgzs 2003-12-12
rs.AbsolutePosition
回复
pcwak 2003-12-12
AbsolutePosition 属性(远程数据)


返回或设置 rdoResultset 对象的当前行的绝对行号。

语法

object.AbsolutePosition [= value]

AbsolutePosition 属性的语法包含下面部分:

部分 描述
object 对象表达式,其值是“应用于”列表中的一个对象。
value 长数据类型值,其范围从 -1 到 rdoResultset 中的最大行号 。与由 object 指定的 rdoResultset 中的当前行的顺序位置对应。缺省值是 -1。


说明

使用 AbsolutePosition 属性将当前行指针定位到一个特定行,该行以其在 rdoResultset 中的有序位置为准,rdoResultset 为键集类型,或静态类型。不支持动态类型或仅向前类型的 rdoResultset 对象。当为动态游标返回一个值时,该值不必很准确。一般来说,在支持 AbsolutePosition 值之前,rdoResultset 对象的 Bookmarkable 属性必须为 True 。

也可以通过检查 AbsolutePosition 属性的设置值,确定当前行号。例如,在 50 行的 rdoResultset 中移动了 10 行, AbsolutePosition 属性返回 10 。对该结果集执行 MoveLast 方法后, AbsolutePosition 返回 50。 然后设置 AbsolutePosition 属性为 1 和 50 之间的任意值,将当前行指针定位到那行。

AbsolutePosition 属性的值是基于 -1 ,因此,设置为1即是指 rdoResultset 中的第一行。如果设置一个大于移居行数的值,会造成 RDO 定位到结果集的最后一行 (EOF)。

如果没有当前行,比如当 rdoResultset 中一行也没有时,就返回-1。如果当前行被删除, AbsolutePosition 属性值就没有定义,再引用该属性值会产生一个可以捕获的错误。如果游标的类型包括动态成员,将新行添加到序列的尾部。

注意 该属性不是打算用来代替行号的。建议仍使用书签方法保留及返回游标给定的位置。而且,如果重新创建 rdoResultset,由于在执行过程中 rdoResultset 中各行的顺序和成员会发生变化,所以给定的行会有相同的绝对位置,因此也是不可靠的。
回复
ghosthjt 2003-12-12
rs.AbsolutePosition 或rs.bookmark
回复
pcwak 2003-12-12
AbsolutePosition
回复
boydgmx 2003-12-12
AbsolutePosition
回复
northwolves 2003-12-12
不知对不对:
rs.AbsolutePosition
回复
haipingma 2003-12-12
rs.AbsolutePosition
回复
SoHo_Andy 2003-12-12
一般是通过计数的,例如
rs.movefirst
i=1
while not rs.eof
rs.movenext
i=i+1
Wend
回复
rx.movefist

i=1;
while <>eof
rs.movenest
i=i+1
loop
回复
SuperZhou 2003-12-12
AbsolutePosition是否是正确的值要看游标类型,看看ADO的帮助就可以了
回复
zhangzhijian 2003-12-12
AbsolutePosition
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7487

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2003-12-12 03:19
社区公告
暂无公告