请看看这段代码在access转到sql后order by部分为什么出错?

fsyxb 2004-01-18 10:06:11
sql="SELECT cixv,acct FROM paiku where (queren=0 and acct<>0) order by acct desc"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,3
i=1
if not(Rs.Bof OR Rs.Eof) then
do while not rs.eof
rs("cixv")=i
i=i+1
rs.update
rs.movenext
loop
rs.close
else
response.end
end if

以上代码在access中用没有问题,但转到sql后,执行此代码时提示出错:
ADODB.Recordset 错误 '800a0cb3'
Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.

但只要把“order by acct desc”部分去掉就能正常执行了,后来试了几次,发现如果在select中使用order by,当要写入数据时就会出错,不写入就没问题。如果要写入数据,就不能使用order by,请问是什么缘故?
...全文
120 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fsyxb 2004-02-02
  • 打赏
  • 举报
回复
难道在sql数据库中,使用了order by对数据进行排序后就会锁定数据为只读?

我把我的程序简单说明一下,请高手帮忙看看。

表paiku的设置如下:
id    int(自动增值)
cixv   int
acct   int
queren  bit

其中acct的值由另一程序的控制增加,我上面的程序实现的就是根据acct的值对queren的值不为0的数据进行升值排序,并把对应的顺序值赋予cixv。
TrueAndFalse 2004-01-29
  • 打赏
  • 举报
回复
会不会是你在别的地方打一了数据库没有关闭呢?
fsyxb 2004-01-29
  • 打赏
  • 举报
回复
还是不行,请问在sql中,是否凡是要用order by排序的字段都要在表中设置些什么才行?否则为什么不用order by排序时就能写入,用了就会“数据库以只读方式打开,无法更新数据”?
fsyxb 2004-01-29
  • 打赏
  • 举报
回复
查过程序没有!
lctsy123 2004-01-19
  • 打赏
  • 举报
回复
rs.open sql,conn,3,3
紫郢剑侠 2004-01-18
  • 打赏
  • 举报
回复
关注...
fsyxb 2004-01-18
  • 打赏
  • 举报
回复
如果把order by部分去掉就能正常执行,没有报<>出错啊!
acct转换后是int
xieyj 2004-01-18
  • 打赏
  • 举报
回复
acct 转换后是什么类型
jumpnew929 2004-01-18
  • 打赏
  • 举报
回复
mssql不支持"<>"的哦,。用"!="试试吧
chnj1981 2004-01-18
  • 打赏
  • 举报
回复
ADODB.Recordset(0x800A0CB3)-->数据库以只读方式打开,无法更新数据
fsyxb 2004-01-18
  • 打赏
  • 举报
回复
等待中

28,404

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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