标题:[求助]错误:在获得新的行句柄之前,必须释放所有的行句柄。
取消只看楼主
dolphin1984
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-11-19
 问题点数:0 回复次数:8 
[求助]错误:在获得新的行句柄之前,必须释放所有的行句柄。
<%
var id1 = id+1;
var rs1 = Server.CreateObject("ADODB.RECORDSET");
sql1 = "Select * From Messages Where MessageID ="+id1;
rs1.Open(sql1,Conn,2,4);
while(!rs1.Eof){
rs1("MessageID") = rs1("MessageID")-1;
rs1.MoveNext();
}
%>

在最后一行rs1.MoveNext();出错:
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E25)
在获得新的行句柄之前,必须释放所有的行句柄。

希望实现每个MessageID都可以减去1的操作~~
怎么回事?
怎么改呢??高手求助~~
提前谢谢了~~

[此贴子已经被作者于2006-3-29 21:23:47编辑过]

搜索更多相关主题的帖子: 句柄 Microsoft MessageID var 
2006-03-29 21:16
dolphin1984
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-11-19
得分:0 
关于
rs1.Open(sql1,Conn,2,4);
中的参数
我查了课件
(sql1,Conn,打开方式,锁定类型)
打开方式:
0、 默认值,记录集只能向前移动
1、 记录集可以前后移动,并能同步反映自它创建后其它用户所作的修改和删除,但不能反映新增加的记录
2、 记录集可以前后移动,并能同步反映自它创建后其它用户所作的任何操作
3、 记录集可以前后移动,但不能同步反映自它创建后其它用户所作的任何操作
锁定类型:
1、 记录只读,不能更新
2、 编辑记录开始立刻锁定,直到提交给数据提供者
3、 一次锁定一条记录,只有调用Update方法时才锁定记录
4、 允许同时更新多条记录

我想我要更新多条记录
所以锁定类型应该为4吧
打开方式中2为权限最多的
可是为什么还是出错呢??????那里错了呢
为什么在移向下一条记录时说我没有释放句柄??
什么是句柄??怎么释放???

2006-03-29 21:21
dolphin1984
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-11-19
得分:0 
……
高手帮我看看

2006-03-29 21:41
dolphin1984
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-11-19
得分:0 
还是一样的错
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E25)
在获得新的行句柄之前,必须释放所有的行句柄。

你说我应该用什么方式打开数据库呢??我是不是不应该选2,4呢??
错误还是出在那一行 rs1.MoveNext();

呵 谢谢你啊~~~

2006-03-29 21:49
dolphin1984
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-11-19
得分:0 

6楼帅哥~~~
你那样只能实现将一条记录MessageID减1

可是我希望表中id1项之后的所有记录中的MessageID都减1
所以我用了while循环

你说怎么办呢???


2006-03-29 22:03
dolphin1984
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-11-19
得分:0 
不是吧 变成1,3????
那不是只能向前移动rs了么 都不能操作数据库了~~

调试了 运行超慢~~

我换成2,3
结果只能将id1项的MessageID减一
下面的MessageID就不能实现减一 也就是说不能循环正确运行
晕~~
我这么说能理解我的意思吗~~我表达能力不行 ~~~

那该怎么改呀~~~~~~~~

2006-03-29 22:10
dolphin1984
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-11-19
得分:0 
哦 可是还是不行 运行结果就是只把一条记录MessageID减一了~~
郁闷~~
别的记录没有变~~~怎么回事呢
该怎么改呀~~~~

2006-03-29 22:14
dolphin1984
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-11-19
得分:0 

阿 太强了~~~呵呵 解决了~~~~~~~

厉害厉害~~

呵呵 我只想到循环了 不过是 MessageID>"+id
id1是id+1
呵呵

谢谢 谢谢

太强了简直~~呵呵


2006-03-29 22:21
dolphin1984
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-11-19
得分:0 
sql1 = "Update Messages Set MessageID=MessageID-1 Where MessageID>"+id;

对不起 对不起 呵呵 我没说清楚 解决了 上面的语句就可以实现每条记录减一了 呵呵~~~
谢谢你们~~~~~~

2006-03-29 22:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-53771-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.116501 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved