记录集中记录被删除的处理?

ChrisCai 2003-08-20 01:10:48
如果有一个记录集RS,执行过RS.delete以后,
记录集中会留下一个被删除的行,当读到这个行时会出错,
怎样使当执行完DELETE后连这个行也删除?谢谢!
...全文
23 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxrwan 2004-02-07
  • 打赏
  • 举报
回复
rs.delete
rs.Update
rs.Requery
cloudtarget 2004-02-07
  • 打赏
  • 举报
回复
with rs
.delete
if .eof then
.movelast
else
.movenext
end if
end with
---------------------
rs.delete
rs.Update
rs.Requery

都可以呀
chenkangli 2003-08-24
  • 打赏
  • 举报
回复
with rs
.delete
if .eof then
.movelast
else
.movenext
end if
end with
KJ_Wang 2003-08-24
  • 打赏
  • 举报
回复
with rs
.Delete
if .Eof then
.Movelast
else
.Movenext
end if
end with
战箫 2003-08-24
  • 打赏
  • 举报
回复
删除操作执行完后,要执行更新,也就是update
WQ771211 2003-08-24
  • 打赏
  • 举报
回复
用MDAC象在扫雷,一点没有安全感,ADO是这样,DataGrid更不要说了(还不如自己做一个稳定)
我现在用XML来存储、传递数据,可靠很多
服务器端的ASP程序只用set rs=cn.execute(strSQL)返回只读的RecordSet
用cn.execute(strSQL)来执行insert和update
wangwz 2003-08-22
  • 打赏
  • 举报
回复
rs.delete后
rs.Update
rs.Requery
neo40 2003-08-22
  • 打赏
  • 举报
回复
可能是VB里ADO的问题,安装单独的VB企业版,不要用Visual Studio里的VB

如果不是,楼上各位的代码都可以解决问题
of123 2003-08-22
  • 打赏
  • 举报
回复
移动还是重新查询,依赖于应用的具体要求:
1 重新查询会回到第一条记录
2 移动可以迁移到上一条或下一条记录,但需要更多判断。楼上的代码,在记录集删空时还是要出错。
jornet 2003-08-22
  • 打赏
  • 举报
回复
rs.delete后
rs.Update
rs.Requery
cccyxd 2003-08-21
  • 打赏
  • 举报
回复
我也碰到了这个问题,看看你的记录集所定方式是不是adLockBatchOptimistic,如果是应该要价.updatebatch
iiboy 2003-08-20
  • 打赏
  • 举报
回复
只要在rs.Delete之后移动(rs.Move、rs.MoveFirst、rs.MoveNext、rs.MovePrevious、rs.MoveLast)一下记录位置即可.
aiur2000 2003-08-20
  • 打赏
  • 举报
回复
rs.delete后
rs.close
set rs=nothing
qingming81 2003-08-20
  • 打赏
  • 举报
回复
rs.delete后,不是要执rs.update或rs.refresh ,而是要strongfisher(Haiwolf)的那样,将记录集移动到下一条,如果这时删除的已经是最后一条,那么再移动到最后一条(应是删除前的倒数第二条记录)
with rs
.delete
if .eof then
.movelast
else
.movenext
end if
end with
qingming81 2003-08-20
  • 打赏
  • 举报
回复
rs.delete后,不是要执rs.update或rs.refresh ,而是要strongfisher(Haiwolf)的那样,将记录集移动到下一条,如果这时删除的已经是最后一条,那么再移动到最后一条(应是删除前的倒数第二条记录)
with rs
.delete
if .eof then
.movelast
else
.movenext
end if
end with
yijiansong 2003-08-20
  • 打赏
  • 举报
回复
rs.delete后,马上执行rs.refresh。
strongfisher 2003-08-20
  • 打赏
  • 举报
回复
intDelete = MsgBox("是否真的要删除?", vbYesNo + vbInformation, "注意!")
If rs.RecordCount <> 0 Then
If intDelete = vbYes Then
With rs
.Delete
.MoveNext
If .RecordCount <> 0 Then
If .EOF Then .MoveLast
End If
End With
End If
End If
馮強 2003-08-20
  • 打赏
  • 举报
回复
rs.delete后,马上执行rs.update,删除当前行,rs游标将定位到下一个可用记录上。

1,216

社区成员

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

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