asp网页中ADODB.Field错误 '80020009' 如何解决? 20
运行default.asp首页时,网页中间错误代码提示如下:ADODB.Field错误'80020009'BOF或EOP中有一个是“真”,或者当前的记录已被删除,所需的操...
运行default.asp首页时,网页中间错误代码提示如下:
ADODB.Field错误 '80020009'
BOF 或EOP 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/default.asp,行 0
点击打开以上错误段的超链接时,新窗口打开显示错误代码如下:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
ODBC 驱动程序不支持所需的属性。
/openarticle.asp,行 17
我的首页default.asp文件中相关程序段是这样写的:
<%set rs=server.createobject("adodb.recordset")
sql ="select * from article where hits>=30 order by dateandtime desc"
rs.open sql,conn,1,1%>
<td width="337" height="79" class="p1"><a href="openarticle.asp?id=<%=rs("newsid")%>" target="_blank"> <%=RmHtml(left(rs("content"),100))%> ……</A><%set rs=nothing%></td>
而openarticle.asp文件里的内容相关程序段如下:
<%response.buffer=false
dim sql
dim path
dim filename
dim rs
dim listname
dim articleid
articleid=request("id")
path=request("path")
filename=request("filename")
set rs=server.createobject("adodb.recordset")
sql="update article set hits=hits+1 where newsID="&articleid
rs.open sql,conn,1,1
rs.close
conn.close
response.redirect "go.asp?id="&articleid
%>
请高手们帮我看看,是哪一个程序出错了,怎么改啊? 成功奖分啊~
把楼下说的那行注释起来也不行啊~ 展开
ADODB.Field错误 '80020009'
BOF 或EOP 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/default.asp,行 0
点击打开以上错误段的超链接时,新窗口打开显示错误代码如下:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
ODBC 驱动程序不支持所需的属性。
/openarticle.asp,行 17
我的首页default.asp文件中相关程序段是这样写的:
<%set rs=server.createobject("adodb.recordset")
sql ="select * from article where hits>=30 order by dateandtime desc"
rs.open sql,conn,1,1%>
<td width="337" height="79" class="p1"><a href="openarticle.asp?id=<%=rs("newsid")%>" target="_blank"> <%=RmHtml(left(rs("content"),100))%> ……</A><%set rs=nothing%></td>
而openarticle.asp文件里的内容相关程序段如下:
<%response.buffer=false
dim sql
dim path
dim filename
dim rs
dim listname
dim articleid
articleid=request("id")
path=request("path")
filename=request("filename")
set rs=server.createobject("adodb.recordset")
sql="update article set hits=hits+1 where newsID="&articleid
rs.open sql,conn,1,1
rs.close
conn.close
response.redirect "go.asp?id="&articleid
%>
请高手们帮我看看,是哪一个程序出错了,怎么改啊? 成功奖分啊~
把楼下说的那行注释起来也不行啊~ 展开
2个回答
展开全部
对于default.asp文件来说:
错误出在rs.open sql,conn,1,1之后,少一个判断该记录是否存在的语句,如果存在,才能够读取rs("newsid"),如果不存在而你又没有进行必要的判断,那么就会出现BOF 或EOP 中有一个是“真”,或者当前的记录已被删除之类的错误。
修改后的语句应该是这样子的:
<%
set rs=server.createobject("adodb.recordset")
sql ="select * from article where hits>=30 order by dateandtime desc"
rs.open sql,conn,1,1
'先进行如下的判断,判断该记录在数据库中是否存在,如果存在才能读取rs("newsid")这样的值,否则就会出现错误
if not rs.eof and not rs.bof then
%>
<td width="337" height="79" class="p1"><a href="openarticle.asp?id=<%=rs("newsid")%>" target="_blank"> <%=RmHtml(left(rs("content"),100))%> ……</A></td>
<%
end if
set rs=nothing
%>
而对于openarticle.asp这个文件来说出现错误的语句是:rs.open sql,conn,1,1
这一句有两个参数,第一个参数是CursorType,第二个参数是LockType
CusorType有四个值,这里取1也是可以的,没有问题。而LockType这里取值取错了,可以取2,3,但是就是不能取1。至于CursorType与LockType的意义,你可以参看微软的ado帮助,我这里就不多做解释了。
错误出在rs.open sql,conn,1,1之后,少一个判断该记录是否存在的语句,如果存在,才能够读取rs("newsid"),如果不存在而你又没有进行必要的判断,那么就会出现BOF 或EOP 中有一个是“真”,或者当前的记录已被删除之类的错误。
修改后的语句应该是这样子的:
<%
set rs=server.createobject("adodb.recordset")
sql ="select * from article where hits>=30 order by dateandtime desc"
rs.open sql,conn,1,1
'先进行如下的判断,判断该记录在数据库中是否存在,如果存在才能读取rs("newsid")这样的值,否则就会出现错误
if not rs.eof and not rs.bof then
%>
<td width="337" height="79" class="p1"><a href="openarticle.asp?id=<%=rs("newsid")%>" target="_blank"> <%=RmHtml(left(rs("content"),100))%> ……</A></td>
<%
end if
set rs=nothing
%>
而对于openarticle.asp这个文件来说出现错误的语句是:rs.open sql,conn,1,1
这一句有两个参数,第一个参数是CursorType,第二个参数是LockType
CusorType有四个值,这里取1也是可以的,没有问题。而LockType这里取值取错了,可以取2,3,但是就是不能取1。至于CursorType与LockType的意义,你可以参看微软的ado帮助,我这里就不多做解释了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
BOF 或EOP 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
这句话提示,查询结果为空,做一下有无数据的判断吧,
--------------------------------
sql ="select * from article where hits>=30 order by dateandtime desc"
rs.open sql,conn,1,1
在这里,判断下有没有数据
--------------------------------------------
rs.open sql,conn,1,1
rs.close
把rs.close 这一行先注释起来试试,用完了再关闭
这句话提示,查询结果为空,做一下有无数据的判断吧,
--------------------------------
sql ="select * from article where hits>=30 order by dateandtime desc"
rs.open sql,conn,1,1
在这里,判断下有没有数据
--------------------------------------------
rs.open sql,conn,1,1
rs.close
把rs.close 这一行先注释起来试试,用完了再关闭
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询