白种人皮肤为什么白:ASP的问题SQL删除语句问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 08:28:08
文件:
<%
dim conn
dim dbpath
set conn=server.createobject("adodb.connection")
DBPath = Server.MapPath("../data.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
%>

<%
set rs=server.createobject("adodb.recordset")
sqlstr="delete * from zx where id="&("id")&""
conn.execute sql
while not rs.eof
reco.delete
reco.movenext
wend
Response.end
set reco=nothing
set conn=nothing
%>

报错:

Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e0c'

没有为命令对象设置命令。

admin/alldel.asp,行13

<%
set rs=server.createobject("adodb.recordset")
sqlstr="delete * from zx where id="&("id")&""
conn.execute sql
while not rs.eof
reco.delete
reco.movenext
wend
Response.end
set reco=nothing
set conn=nothing
%>
这条语句逻辑上有错误,用"delete from table where="...不用再使用循环.你可以选择其中之一!!!

错误太多,
记录集名不一样, rs<>reco
sqlstr="delete * from zx where id="&("id")&""
应写成
sqlstr="delete * from zx where id="&id
或sqlstr="delete * from zx where id='"&id&"'"
或sqlstr="delete * from zx where id='"+id
或sqlstr="delete * from zx where id='"+id+"'"
如果用reco.delete ,那么SQL用查询语句也行
没必要用while,可以直接删除当前记录

刚刚不好意思 我马虎了 给你的答案中少写了一行 修改下面的<% %>中内容为:
<%
set rreco=server.createobject("adodb.recordset")
sqlstr="delete * from zx where id="& id
reco.open sqlstr,conn,1,3
while not reco.eof
reco.delete
reco.movenext
wend
Response.end
set reco=nothing
set conn=nothing
%>

事实上我只是把你自己写的“conn.execute sql”改为“reco.open sqlstr,conn,1,3”。
另外我检查了一下,还有一处错误
while not rs.eof
应该为:while not reco.eof
你自己的代码也有一处不妥当的地方,容易出错:
sqlstr="delete * from zx where id="&("id")&""
修改为
sqlstr="delete * from zx where id="&id
我已经修改过来了。