主题:  敬请各位大侠帮忙看看问题

leihen777

职务:普通成员
等级:1
金币:0.0
发贴:5
#12004/12/10 9:50:24
帮忙改以下这里的错误,我实在是没办法了

<%
set conn=server.createobject("ADODB.CONNECTION")

constr="Provider=msdaora;Data Source=aesorcl;User Id=rwadmin;Password=rwadmin"
conn.Open constr


Set rs=server.createobject("adodb.recordset")

set rs=conn.Execute("select * from syjs")
%>
<html>
<head>
<title>== 实用技术 ==</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<SCRIPT language=javascript>
<!--
<!--
function MM_reloadPage(init) { file://reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->

function MM_openBrWindow(theURL,winName,features) { file://v2.0
window.open(theURL,winName,features);
}
file://-->
</SCRIPT>
</head>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<TABLE WIDTH="51%" BORDER="0" CELLSPACING="0" CELLPADDING="0" HEIGHT="219"> <TR>
<TD BGCOLOR="#cee7ce" HEIGHT="29"> <DIV ALIGN="center"><B><FONT SIZE="2" COLOR="#FF0000">实用技术   文章列表</FONT></B></DIV></TD></TR>
<TR> <TD BGCOLOR="#D6E4E4" VALIGN="top" HEIGHT="289"> <TABLE WIDTH="98%" BORDER="0" ALIGN="center" CELLSPACING="0" CELLPADDING="0">
<TR> <TD BGCOLOR="#339966"><IMG WIDTH=1 HEIGHT=1></TD></TR> </TABLE><TABLE CELLSPACING=0 BORDERCOLORDARK=#ccffcc WIDTH="80%" BORDER=0 ALIGN="center" HEIGHT="8">
<TR> <TD HEIGHT="2" WIDTH="73%"><FONT SIZE="2" COLOR="#666666"> <B>标  题</B></FONT></TD><TD HEIGHT="2" WIDTH="27%">
<FONT SIZE="2" COLOR="#666666"><B>时  间</B></FONT></TD></TR> <TBODY> </TBODY> </TABLE><TABLE WIDTH="98%" BORDER="0" ALIGN="center" CELLSPACING="0" CELLPADDING="0">
<TR> <TD BGCOLOR="#339966"><IMG WIDTH=1 HEIGHT=1></TD></TR> </TABLE><%
Dim rssyjs,tc,page,allpage,pno
'Set rsDepartment = Server.CreateObject("ADODB.Recordset")
'rsDepartment.Open "Department", objConn, adOpenKeyset,adLockPessimistic, adCmdTable

page=request.querystring("page")'获取超连接?后面的页数
rs.pagesize=10 '这里我们设定每页显示的记录数是10个
allpage=rs.pagecount '这是统计一下记录总共能分多少页
if isempty(page) or cint(page)<1 then
page=1
elseif cint(page)>allpage then
page = allpage
end if
rs.absolutepage=page '这一句是指定当前页为request.querystring("page")接收到的页数
tc=rs.pagesize

If Not rs.EOF Then
%> <TABLE BORDER="0" WIDTH="80%" CELLPADDING="2" CELLSPACING="4" ALIGN="center">
<%
while not rs.eof and tc>0 '循环条件:指针不是指向记录最后一条之后,和记录条数大于0则循环开始!
rsname = rs("name")
rsdate = rs("date")
id=rs("id")
%> <TR> <TD WIDTH="319"><A HREF="syjs_blank.asp?id=<%=id%>"TARGET="_blank"><%=rsname%></A></TD><TD WIDTH="110">
<%=rsdate%></TD></TR> <% rs.movenext '这是ASP内置的游标,表示移动到此记录的下一条这不就实现了循环了吗?
tc=tc-1 '没循环一次记录条数就减去1,直到有一次记录条数为0了,呵呵,循环也就结束了!
wend '循环语句结束 %> </TABLE><TABLE WIDTH="81%" BORDER="0" ALIGN="center"> <TR>
<TD> <DIV ALIGN="center"><FONT COLOR="#FF0000"><BR> <% '作些判断,确定显示那些按钮,当在第一页时程序只显示下一页按钮,当在最后一页时程序只显示上一页,其余则……
if page=1 then %> <A HREF="?page=2" ><FONT COLOR="#FF0000">『下一页』</FONT></A>
&nbsp&nbsp&nbsp&nbsp <% elseif page=allpage then %> <A HREF="?page=<%=page-1%>" ><FONT COLOR="#FF0000">『上一页』</FONT></A>
<% else %> <A HREF="?page=<%=page-1%>" ><FONT COLOR="#FF0000">『上一页』</FONT></A>
   <A HREF="?page=<%=page+1%>"><FONT COLOR="#FF0000">『下一页』</FONT> </A></FONT>
&nbsp&nbsp&nbsp&nbsp <% end if %> <FONT COLOR="#FF0000"> <% '开始做分页按钮了
response.write"本版共"&(allpage)&"页"&"&nbsp&nbsp当前第"&(page)&"页"%> <%
'for pno=1 to allpage
'if pno=cint(page) then %> <%'=pno%> <% else %> <A HREF='?page=<%=pno%>' CLASS="text1"><%=pno%></A></FONT>
<% 'end if %> <% 'next %> <% Response.Write "</TABLE>"

'Else
'Response.Write "<CENTER><H2>无相关部门信息</H2></CENTER>"
End If
rs.close
'set rs=Nothing
%> </DIV></TD></TR> </TABLE></TD></TABLE>
<map name="Map"> <area shape="rect" coords="0,-1,146,36" href="scy.asp">
</map> <map name="Map2"> <area shape="rect" coords="-1,1,146,34" href="xmy.asp">
</map> <map name="Map3"> <area shape="rect" coords="0,-1,147,35" href="javascript:;"
onclick="MM_openBrWindow('tianjia.asp','','resizable=yes,width=500,height=400')">
</map> <map name="Map4"> <area shape="rect" coords="0,0,147,34" href="zzy.asp">
</map>
</body>
</html>


这里是整个网页的代码

页面错误是

ADODB.Recordset 错误 '800a0e78'


对象关闭时,不允许操作。

但是在在rs.open 语句之前没有找到rs.close

就不知道错误在哪了!!!

在线等待!!!

编辑历史:[此帖最近一次被 leihen777 编辑过(编辑时间:2004-12-15 15:59:45)]


缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#22004/12/10 9:52:30
Set rs=server.createobject("adodb.recordset")

set rs=conn.Execute("select * from syjs")

两种不同的方式重复创建了rs对象



leihen777

职务:普通成员
等级:1
金币:0.0
发贴:5
#32004/12/10 9:55:23
set rs=conn.Execute("select * from syjs")

我把这个对象代码删除了,错误还是有,
显示在'rs.open rsDepartment.Open "Department", objConn, adOpenKeyset,adLockPessimistic, adCmdTable,
这一行上
错误提示还是ADODB.Recordset 错误 '800a0e78'

对象关闭时,不允许操作。

编辑历史:[此帖最近一次被 leihen777 编辑过(编辑时间:2004-12-10 10:05:13)]


leihen777

职务:普通成员
等级:1
金币:0.0
发贴:5
#42004/12/10 10:01:54
之前我看了一个帖子是对象被关闭是因为在rs.open 语句之前只用了rs.close关闭了rs对象,可我这段代码中没有这样的类似,希望能给我指点迷津



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#52004/12/10 10:29:09
你的代码好乱,看着很辛苦。
只建议你,先把代码好好理一下,看不太清的代码很难维护,可能只有自己最清楚了,别人可不太愿看这样代码。
建议,先搞清楚Recordset对象的RS与conn.Execture的区别。设立断点,即用Response.End,并用Response.Write输出一些作息,检查代码错误可能出现在那一段上。另外需检查是否有Include文件,比如包含文件中也有RS是打开的,这样会引起冲突。另外Conn.Execute的RS是只读的,并且只允许一个方向移动记录,不能对Rs赋值。


非常大鱼