主题:  一个捆饶我两天的烦恼!!

cwlcwr78

职务:普通成员
等级:1
金币:1.0
发贴:149
#12003/8/30 13:04:26

<% qu=request.form("qu") %>
<% hangye=request.form("hangye") %>
<% dim rs,sql %>
<% set rs=server.createobject("adodb.recordset")
sql="select * from shenqing where hangyeid=' &hangye&' and hangye ='&qu&' order by dwid desc"
rs.open sql,conn,1,1%>
<% do while not rs.eof %>
<%=rs("dwmc")%>
<% rs.MoveNext
Loop
rs.close %>

经过测试
<% =request.form("qu") %>
<% =request.form("hangye") %>
可以正确接受到船过来的数字(船过来来的直 就是数字)
hangye,hangye全部是数字字段
但是以上代码运行很长时间
没有任何反映
系统资源急剧下降
最后SESSION超时

如果该成

sql="select * from shenqing where hangyeid=" &hangye&" and hangye =" &qu&" order by dwid desc"
错误类型:
Microsoft VBScript 编译器错误 (0x800A0401)
/cj/new_44yes1/myself/xiangxi-search-back.asp, 第 6 行, 第 45 列
sql="select * from shenqing where hangyeid=" &hangye&" and hangye =" &qu&" order by dwid desc"




janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#22003/8/30 13:38:32

<%
qu=CLng(request.form("qu"))
hangye=CLng(request.form("hangye"))
dim rs,sql
set rs=server.createobject("adodb.recordset")
sql="select * from shenqing where hangyeid="& hangye &" and hangye="& qu &" order by dwid desc"
conn.Execute(sql)
do while not rs.eof
Response.write "
"& rs("dwmc")
rs.MoveNext
Loop
rs.close
Set rs=Nothing
conn.Close
Set conn=Nothing%>



cwlcwr78

职务:普通成员
等级:1
金币:1.0
发贴:149
#32003/8/30 14:13:19
<%
dim conn
dim connstr

on error resume next
connstr="DBQ="+server.mappath("sta_db.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>
<%
qu=CLng(request.form("qu"))
hangye=CLng(request.form("hangye"))
dim rs,sql
set rs=server.createobject("adodb.recordset")
sql="select * from shenqing where hangyeid="& hangye &" and hangye="& qu &" order by dwid desc"
conn.Execute(sql)
do while not rs.eof
Response.write "
"& rs("dwmc")
rs.MoveNext
Loop
rs.close
Set rs=Nothing
conn.Close
Set conn=Nothing%>

故障依旧
死循环



cwlcwr78

职务:普通成员
等级:1
金币:1.0
发贴:149
#42003/8/30 14:15:55
错误类型:
Active Server Pages, ASP 0113 (0x80004005)
超过了脚本运行的最长时间。您可以通过指定 Server.ScriptTimeOut 属性值来修改此限制或用 IIS 管理工具来修改它。



cwlcwr78

职务:普通成员
等级:1
金币:1.0
发贴:149
#52003/8/30 14:24:00
conn.Execute(sql)????

rs.open sql,conn,1,1%>
不行么?



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#62003/8/30 14:46:50
把on error resume next注释掉,看看哪里出问题了



cwlcwr78

职务:普通成员
等级:1
金币:1.0
发贴:149
#72003/8/30 14:55:55
<%
dim conn
dim connstr
connstr="DBQ="+server.mappath("sta_db.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>
<%
qu=CLng(request.form("qu"))
hangye=CLng(request.form("hangye"))
dim rs,sql
set rs=server.createobject("adodb.recordset")
sql="select * from shenqing where hangyeid="& hangye &" and hangye="& qu &" order by dwid desc"
conn.Execute(sql)
do while not rs.eof
Response.write "
"& rs("dwmc")
rs.MoveNext
Loop
rs.close
Set rs=Nothing
conn.Close
Set conn=Nothing%>
-----------------------------
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
/cj/new_44yes/myself/xiangxi-search-back.asp, 第 16 行
16 conn.Execute(sql)



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#82003/8/30 16:34:22
写错了
Set rs=conn.Execute(sql)



cwlcwr78

职务:普通成员
等级:1
金币:1.0
发贴:149
#92003/8/30 17:03:10
<%
dim conn
dim connstr
connstr="DBQ="+server.mappath("sta_db.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>
<%
qu=CLng(request.form("qu"))
hangye=CLng(request.form("hangye"))
dim rs,sql
set rs=server.createobject("adodb.recordset")
sql="select * from shenqing where hangyeid="& hangye &" and hangye="& qu &" order by dwid desc"
Set rs=conn.Execute(sql)%>
<%do while not rs.eof
Response.write "
"& rs("dwmc")
rs.MoveNext
Loop
rs.close
Set rs=Nothing
conn.Close
Set conn=Nothing%>

----------------

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
/cj/new_44yes/myself/xiangxi-search-back.asp, 第 14 行

Set rs=conn.Execute(sql)




ryonick

职务:普通成员
等级:2
金币:1.0
发贴:317
#102003/8/30 17:11:01
sql="select * from shenqing where hangyeid="& hangye &" and hangye="& qu &" order by dwid desc"
改为
sql="select * from shenqing where hangyeid='"& hangye &"' and hangye='"& qu &"' order by dwid desc" 试试



cwlcwr78

职务:普通成员
等级:1
金币:1.0
发贴:149
#112003/8/30 17:33:53
<%
dim conn
dim connstr
connstr="DBQ="+server.mappath("sta_db.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>
<%
qu=CLng(request.form("qu"))
hangye=CLng(request.form("hangye"))
dim rs,sql
set rs=server.createobject("adodb.recordset")
sql="select * from shenqing where hangyeid='"& hangye &"' and hangye='"& qu &"' order by dwid desc"
Set rs=conn.Execute(sql)%>
<%do while not rs.eof
Response.write "
"& rs("dwmc")
rs.MoveNext
Loop
rs.close
Set rs=Nothing
conn.Close
Set conn=Nothing%>
--------------------------------
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
/cj/new_44yes/myself/xiangxi-search-back.asp, 第 14 行
Set rs=conn.Execute(sql)%>



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#122003/8/30 19:43:27
<%
dim conn
dim connstr
connstr="DBQ="+server.mappath("sta_db.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>
<%
qu=CLng(request.form("qu"))
hangye=CLng(request.form("hangye"))
dim rs,sql
set rs=server.createobject("adodb.recordset")
sql="select * from shenqing where hangyeid="& hangye &" and hangye="& qu &" order by dwid desc"
rs.open sql,conn,1,1
%>
<%do while not rs.eof
Response.write "
"& rs("dwmc")
rs.MoveNext
Loop
rs.close
Set rs=Nothing
conn.Close
Set conn=Nothing
%>



cwlcwr78

职务:普通成员
等级:1
金币:1.0
发贴:149
#132003/8/31 11:58:07
更详细的都在这里了

我要绝望了

www.blueidea.com/bbs/newsdetail.asp?id=1159906&page=9999&lp=0



whoisspider

职务:普通成员
等级:1
金币:1.0
发贴:245
#142003/8/31 23:16:07
看了经典那边的帖子:
既然你都确定了hangye和qu换个变量名就没问题了,那么你去查查看,是不是前面的程序代码或包含的文件中有没有已经有这些变量名了,变量名用dim先申请是个好习惯,防止已经变量名已经存在,虽然直接赋值能省略申请步骤(如果变量名前面不存在的话),但是很可能这个变量名已经申请过了,尤其是用别人的代码和多人开发中很容易碰到这个问题。这会给程序开发带来额外的困扰!如果变量名重复,用的时候类型不匹配还好,程序会立即报错,如果类型还一样,那就更头疼了,程序也许能不报错运行了,实际上逻辑已经被扰乱了,这时候查错才叫头疼,因为你很难定位导致错误的地方。

你还是去查查看hanqye,qu,hangye1,qu1是不是已经有了。
还有就是少用on error resume next,查错的时候更不要用!
程序中有错误就要解决掉,而不是让它掩盖起来执行下一条!



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#152003/9/1 9:30:20
嗯,调试阶段不要用 on error resume next,它的作用是体面地结束程序运行(也有其他技巧,但不是主要的),对象是客户,而不是你自己