ADO数据库查询中有关RecordSet记录集的问题

felix1999 2003-08-28 09:59:07
用SQL查询语句查询后得到一个adoRst记录集,将记录集中得内容放到相应得文本控件中,另有几个按钮,比如说下一个,但是走到eof得时候,我要求记录往回走,以显示最后一个数据,可是这时出错,原因是“行集不支持反相提取”,哪位高手指点一下,我知道用Msflexgrid控件可以直接把所有得查询结果显示出来,可是我不想这样做,我的目的就是显示在一系列文本控件里以利于修改,添加等,哪位指点一下?
再说一下:这个adoRst记录集是查询后得到得,并不是一开始表中所有得记录,如果是的话,就没有我这个错误了
我的代码如下:
Private Sub cmdNextData_Click()
adoRst.MoveNext
If adoRst.EOF Then
adoRst.MoveLast ’此行出错
Else
Call Display
End If
End Sub
...全文
42 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
iiboy 2003-08-29
  • 打赏
  • 举报
回复
有出错提示吗??
贴出来看看???
err.Description
felix1999 2003-08-28
  • 打赏
  • 举报
回复
我用的是AdOpenDynamic类型,
我估计是不是这样,因为查询所得到的记录集必然是所有记录集中的一部分,虽然说这个查询得到的记录集也有eof行,但是在这个记录集中不支持往后卷动的操作,但是我又有点怀疑,既然都是记录集,必然都有bof,eof,必然都有movefirst,movelast,为什么在这个里面就是不能先后移动呢?
viena 2003-08-28
  • 打赏
  • 举报
回复
记录集是怎么打开的?
recordset.Open Source, ActiveConnection, CursorType, LockType, Options
CursorType是否AdOpenForwardOnly (默认值)打开仅向前类型游标,

换个参数试试把
参考
CursorType
常量 说明
AdOpenForwardOnly (默认值)打开仅向前类型游标。
AdOpenKeyset 打开键集类型游标。
AdOpenDynamic 打开动态类型游标。
AdOpenStatic 打开静态类型游标。

LockType
常量 说明
AdLockReadOnly (默认值)只读 — 不能改变数据。
AdLockPessimistic 保守式锁定(逐个) — 提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录。
AdLockOptimistic 开放式锁定(逐个) — 提供者使用开放式锁定,只在调用Update 方法时才锁定记录。
AdLockBatchOptimistic 开放式批更新—用于批更新模式(与立即更新模式相对)。
felix1999 2003-08-28
  • 打赏
  • 举报
回复
回复:davidwoo(大无畏)
你说的没错,可是我这句也没有问题,你想,如果当前记录是eof,肯定不能在控件中显示内容(因为eof那一行根本就没有记录,只是一个标志),所以我才要移到尾记录,这要才能显示内容,而且如果再点击“下一个”按钮时,就会停在尾记录不变

我觉得我的问题不在这几句代码,是不是这样,用sql语句查询后的记录集不支持向前卷动,
我试过如果这个记录集不是经过查询得到的,而直接是一个数据库表中的记录集,运行的时候没有一点问题,书签也可以用
如果真的是这样:用sql语句查询后的记录集不支持向前卷动,那么该如何解决,因为我要求查询后要有“下一个的功能”当找到最后一个的时候怎么办,怎么在控件中显示?
zgjimmy 2003-08-28
  • 打赏
  • 举报
回复
If adoRst.EOF Then
exit sub
else
………………

这样应该可以了吧!
davidwoo 2003-08-28
  • 打赏
  • 举报
回复
If adoRst.EOF Then
adoRst.MoveLast

这句有问题。

eof 位于 last 后边

adoRst.MoveLast 后才是 eof
felix1999 2003-08-28
  • 打赏
  • 举报
回复
必须的写这句,你想想,如果没有这一句的话,到了eof指针还要往后走,必然会出错的,只有加了这一句,指针就不会往后移了
md2d 2003-08-28
  • 打赏
  • 举报
回复
没必要写这句啊
注释掉这句就行了

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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