ASP中记录集指针何时能在首部

下面是更新表中一列数据的代码(数据类型为数值型),setrs3=server.createobject("adodb.recordset")sql3="select*fr... 下面是更新表中一列数据的代码(数据类型为数值型),
set rs3= server.createobject("adodb.recordset")
sql3="select * from 用户信息"
rs3.open sql3,conn,3,3
i=0
do while not rs3.eof
if not rs3.bof
i=i+1
rs3("序号")=i
rs3.update
rs3.movenext
end if
loop
rs3.close
set rs3=nothing
运行错误,如改为
set rs3= server.createobject("adodb.recordset")
sql3="select * from 用户信息"
rs3.open sql3,conn,3,3
i=0

do while not rs3.eof
i=i+1
rs3("序号")=i
rs3.update
rs3.movenext
loop
rs3.close
set rs3=nothing
运行正确
两个代码的区别是第二个加了指针在首部的判断,是不是如记录不为空,打开记录集时,指针就指向了第一条记录,而不是指向头部。什么时候,记录集指针才能指向头部。
另外,是不是每更改改一条记录后,就要写上rs3.update,对记录集进行更新,能修改完多条后再对记录集进行更新的吗,也就是在关闭前更新
................
loop
rs3.update
rs3.close
set rs3=nothing
展开
 我来答
eiwinter
2016-10-16 · TA获得超过250个赞
知道小有建树答主
回答量:341
采纳率:0%
帮助的人:395万
展开全部

---问题一--------------------

错误1:高亮显示位置少了then 即应为:if not rs.bof then是程序出错的主要原因

错误2:逻辑问题,没有必要在循环内判断不为bof执行update,循环本身是有条件的

可以直接通过do while not rs.eof and not rs.bof来限制循环

---问题二----------------------

记录集统一更新在ado对象里面没有这个功能,ado对象里面rescordset(即你的rs3) 的update方法只能更新一条记录。

更多追问追答
追问
如果记录不这空,打开记录集时,指针就指向了第一条记录,而不是指向头部,即BOF吗。什么情况下,记录集指针会指向记录首部。
谢谢
追答
结果集的第一条记录和结果集头部不是一回事吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式