ASP能够执行,但会抱错!请指教!(50分)

  • 主题发起人 richboy2002
  • 开始时间
R

richboy2002

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了段asp网页,目的是从数据库里读数据显示在web页上,发布后点击该页抱错:
出现运行期错误,是否纠正错误?行11 错误 缺少对象!我点“否”后可以实现我想
要的效果!但我看不出有什么错误,请指教!开头代码如下:
<%
dim i
dim ID,rstobj,strDBType,strConnString,cnnDB
strDBType = "sqlserver"
strConnString = "driver={SQL Server};server=webserver;uid=gh;pwd=ghgl;database=工会信息" '## MS SQL Server 7 OR 2000
Set cnnDB = Server.CreateObject("ADODB.Connection")
'打开数据库
cnnDB.Open strConnString
set rstobj=server.CreateObject("ADODB.Recordset")
%>
<%
application.lock
application("counter")=application("counter")+1
application.unlock
function G(counter)
dim s,i,myimage
s=cstr(counter)
for i=1 to len(s)
myimage=myimage&amp;"<img src="&amp;mid(s,i,1)&amp;".gif>"
next
G=myimage
end function
%>
如果要这个index.asp网页,请告诉我邮箱地址,我可以发过去!
 
报告“运行期错误,是否纠正错误?行11 错误 缺少对象!”错误,不是你的ASP写错了,
而是你的html部分写错了,估计是一些JavaScript或者VBScript错误,你把页面的连接
告诉我,我去看看……
 
同意楼上,你也可以点击“是”
调出微软的脚本调试器看看是哪出错。
asp的错误是不会在客户端弹出对话框来显示的。
应该是页面中javascript或vbscript脚本出错。
 
按你们的做法我做了,调出微软的脚本调试器,错误的地方如下,你们看看有什么问题吗?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>::::欢迎来到澄西船厂工会网站::::</TITLE>
<META http-equiv=Content-Type content="text/html;
charset=gb2312">
<META http-equiv=Content-Language content=zh-cn><LINK
href="image/index.css" type=text/css rel=stylesheet>
<META content="Microsoft FrontPage 4.0" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId>
</HEAD>
<BODY leftMargin=0 topMargin=0 onLoad="MM_preloadImages('IMAGE/bot_0_1.jpg','IMAGE/bot_1_1.jpg')">-------就这里报错!!
<DIV align=center style="width: 777;
height: 77">
<TABLE height=121 cellSpacing=0 cellPadding=0 width=764 border=0>
<TBODY>
 
你全文搜索一下你的页面代码,看看是不是没有定义MM_preloadImages这个函数。
估计是函数没有定义的错误。
再不行,你就把你生成的页面html代码贴上来吧
 
你把这句删掉试试吧!这句也没有什么实际的意义,应该是预先下载两张图片。
这个应该是DW自动生成的。
 
这个问题解决了!我把那句话删掉后就ok了!但我不明白,ASP中代码运行的顺序是怎样的?
当该网页显示时,asp代码和htm代码是否都要先执行一遍?然后如果该网页有按钮等可以
交互的asp代码,当点按钮后,执行哪段代码?还是真个网页的代码又都执行了一遍?请指
教!
 
你说的正确,所以说asp是一种效率很低的语言。
当用户请求页面时<% ...%>里面的东西在服务器解释执行<?><?>里面的内容
服务器是不负责的,是什么给客户端返回什么。
用户每请求一次页面,页面代码每执行一次。
 
"用户每请求一次页面,页面代码每执行一次"是什么意思?是不是说如果有按钮点击要求
form action,那么加上一开始页面显示,整个网页的htm和<% %>里的代码都执行了2次?
 
也不是每按一次按钮,请求一次也可以说成是访问一次,
假如你的提交数据处理是在同一个页面的话,那这个asp文件是执行了两次。
 
确实都执行一次,或者可以这么理解,首先ASP服务器把整个ASP文件执行一次,把所有的
<%....%>里面的代码执行并生成html代码。
然之后把生成的html代码传到客户端浏览器,客户端浏览器再执行一次html代码。
也没有说低效与高效的,只是你在调试的时候自己的电脑充当服务器解释ASP,又充当客户端
浏览一次而已。
 
谢谢两位的回答!我还有个问题,跟上面的问题也有关!
Response.Write "<meta http-equiv="&amp;chr(34)&amp;"refresh"&amp;chr(34)&amp;" content="&amp;chr(34)&amp;"3;URL=first.asp"&amp;chr(34)&amp;">"
这句话你们应该都看的懂了,让网页转向另一页,但如果光写这句话那本来显示index.asp
网页过3秒就自动转到first.asp上去了。现在加上一个隐藏按扭
<input type="hidden" name="times" value="second">
<%If Request.Form("times")="second" then
Response.Write "<meta http-equiv="&amp;chr(34)&amp;"refresh"&amp;chr(34)&amp;" content="&amp;chr(34)&amp;"3;URL=first.asp"&amp;chr(34)&amp;">"
%>
这样,网页就不会自动转向了!但为什么呢?我不理解,既然这个按扭默认value是second,
那当index.asp显示时If Request.Form("times")="second"不就满足条件吗》?网页应该
还是自动转向呀,但为什么就没转呢?请赐教!
 
你的这个<input>必须要放在一个<form>里才可以提交,
并且要触发submit事件。靠网页自动来完成是不行的。
你可以试一下这句
http://url/index.asp?times=second
看有什么结果吗?
>>既然这个按扭默认value是second,
>>那当index.asp显示时If Request.Form("times")="second"不就满足条件吗》?
这里需要注意的是html标记在服务器段是不会被执行的。
 
多人接受答案了。
 
顶部