神探高伦布第25粤语:[ASP新手] 变量未定义: 'sql' 出错,可以帮我看看吗~

来源:百度文库 编辑:高考问答 时间:2024/04/29 23:47:44
变量未定义: 'sql'
原程序--------------------------------------------

<%@language=vbscript codepage=936 %>
<%
option explicit
response.buffer=true
dim conn
dim connstr
dim db
db="data/db1.asp"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db)
conn.Open connstr
%>

<%
rem ----------------------------------------------------------------------------------------公司新闻----
sql = "select top 5 * from Article where Title order by ArticleID desc"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,1
if rs.bof and rs.eof then
response.write "<li>无热门文章</li>"
else
do while not rs.eof
response.Write "["&rs("ArticleID")&"] - <a href='z.z?xID=" & rs("ArticleID") &"'>" & rs("Title") & "</a><br>"
rs.movenext
loop
end if
rs.close
set rs=nothing
rem ----------------------------------------------------------------------------------------公司新闻----
%>

错误
-----------------------------------------
无法显示网页
试图访问的网页出现问题,无法显示。

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

请尝试执行下列操作:

单击刷新按钮,或稍后重试。

打开 localhost 主页,然后查找与所需信息相关的链接。
HTTP 错误 500.100 - 内部服务器错误 - ASP 错误
Internet 信息服务

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

技术信息(用于支持人员)

错误类型:
Microsoft VBScript 运行时错误 (0x800A01F4)
变量未定义: 'sql'
/1/index_.asp, 第 193 行

浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)

网页:
GET /1/index_.asp

时间:
2005年8月23日, 20:45:13

详细信息:
Microsoft 支持

呵呵,楼主这个问题很简单啊。
VB中 option explicit 意思就是要求强制变量声明的意思。你在第三行加入这句话那里面所用到的所以变量必须声明,否则就会出现变量未定义的错误。

只要在Dim db 后面插入一行加入 dim sql 就可以了。

另外,你在程序的最后释放了RS资源,这点很好。但你只释放了RS的资源,还有CONN的资源要释放。
在最后加入下面两句话就可以了:
conn.close
set conn=nothing

-----------------------
楼下得:
你说得很多,在默认情况下VB不用声明变量就可以使用了,但你看了上面得代码了马?
只要程序加入 option explicit 语句,变量就必须声明。楼下得不知道马?

在VB里面
不是不用定义就可以使用变量吗?
楼上的兄弟。

加上option explicit
以后 就强制 定义了