关于include本论坛里已经有一些文章谈论过了,也有不少网友还在谈论这个问题,在这里想说一些自己在实践中曾经遇到过的问题和解决方式。
先从include的运行方式说起,顾名思义,include——包含,它只是一个包含的作用,并不进行编译(翻译)
第一种错误
举个例子
例1:
conn.asp
<%
dim conn
set conn=Server.CreateObject("adodb.connection")
conn.open "Provider=SqlOledb;DataBase=Cos;Uid=jielon;Pwd=123Z"
response.Write "ok"
%>
conn1.asp
<%
dim conn
set conn=Server.CreateObject("adodb.connection")
conn.open "Provider=SqlOledb;DataBase=Cos;Uid=jielon;Pwd=123Z"
dim rs
set rs=server.CreateObject("adodb.recordset")
rs.ActiveConnection=conn
rs.Source="select * from ttt"
rs.Open
do while not rs.EOF
response.Write rs(1)
rs.MoveNext
loop
rs.Close
%> <!--#include file="conn.asp"-->
运行conn1.asp时会提示:
Microsoft VBScript 编译器错误 错误 '800a0411'
名称重定义
/conn.asp,行2
dim conn
----^
出错原因:
执行conn1.asp的步骤是:
1.包含:<%
dim conn
set conn=Server.CreateObject("adodb.connection")
conn.open "Provider=SqlOledb;DataBase=Cos;Uid=jielon;Pwd=123Z"
dim rs
set rs=server.CreateObject("adodb.recordset")
rs.ActiveConnection=conn
rs.Source="select * from ttt"
rs.Open
do while not rs.EOF
response.Write rs(1)
rs.MoveNext
loop
rs.Close
%>
<%
dim conn
set conn=Server.CreateObject("adodb.connection")
conn.open "Provider=SqlOledb;DataBase=Cos;Uid=jielon;Pwd=123Z"
response.Write "ok"
%>
2.编译(翻译)开始
所以有重命名的错误
第二种错误:
a include b,b include a
出现错误提示:
Active Server Pages 错误 'ASP 0135'
循环包括
/conn.asp,行7
文件 'conn1.asp' 包括它本身 (可能非直接地) 。请检查包含文件中的其他 Include 语句。
第三种错误:
<!--#include file=<%=a.asp%>à
或者
<%……
t="a.asp"
……%>
<!--#include file=<%=t%>à
这里它找的是<%=a.asp%>
以上这些,感觉用asp事务处理很方便:
<%@ transaction=required%> ‘-----必须放在第一行
….your code ……
<% server.execute(transfer) “a.asp”%> ‘----可以包含的页面或者使用的页面
顾名思义,它的作用是直接运行
对于第一个错误,他没有问题
第二个错误,只要他不运行有<%@ transaction=required%>的页面,也不会出现错误提示,但结果是循环的格式
对于第三个错误,<%server.execute t%>也没有问题
所以利用asp事务处理解决值一类问题感
先从include的运行方式说起,顾名思义,include——包含,它只是一个包含的作用,并不进行编译(翻译)
第一种错误
举个例子
例1:
conn.asp
<%
dim conn
set conn=Server.CreateObject("adodb.connection")
conn.open "Provider=SqlOledb;DataBase=Cos;Uid=jielon;Pwd=123Z"
response.Write "ok"
%>
conn1.asp
<%
dim conn
set conn=Server.CreateObject("adodb.connection")
conn.open "Provider=SqlOledb;DataBase=Cos;Uid=jielon;Pwd=123Z"
dim rs
set rs=server.CreateObject("adodb.recordset")
rs.ActiveConnection=conn
rs.Source="select * from ttt"
rs.Open
do while not rs.EOF
response.Write rs(1)
rs.MoveNext
loop
rs.Close
%> <!--#include file="conn.asp"-->
运行conn1.asp时会提示:
Microsoft VBScript 编译器错误 错误 '800a0411'
名称重定义
/conn.asp,行2
dim conn
----^
出错原因:
执行conn1.asp的步骤是:
1.包含:<%
dim conn
set conn=Server.CreateObject("adodb.connection")
conn.open "Provider=SqlOledb;DataBase=Cos;Uid=jielon;Pwd=123Z"
dim rs
set rs=server.CreateObject("adodb.recordset")
rs.ActiveConnection=conn
rs.Source="select * from ttt"
rs.Open
do while not rs.EOF
response.Write rs(1)
rs.MoveNext
loop
rs.Close
%>
<%
dim conn
set conn=Server.CreateObject("adodb.connection")
conn.open "Provider=SqlOledb;DataBase=Cos;Uid=jielon;Pwd=123Z"
response.Write "ok"
%>
2.编译(翻译)开始
所以有重命名的错误
第二种错误:
a include b,b include a
出现错误提示:
Active Server Pages 错误 'ASP 0135'
循环包括
/conn.asp,行7
文件 'conn1.asp' 包括它本身 (可能非直接地) 。请检查包含文件中的其他 Include 语句。
第三种错误:
<!--#include file=<%=a.asp%>à
或者
<%……
t="a.asp"
……%>
<!--#include file=<%=t%>à
这里它找的是<%=a.asp%>
以上这些,感觉用asp事务处理很方便:
<%@ transaction=required%> ‘-----必须放在第一行
….your code ……
<% server.execute(transfer) “a.asp”%> ‘----可以包含的页面或者使用的页面
顾名思义,它的作用是直接运行
对于第一个错误,他没有问题
第二个错误,只要他不运行有<%@ transaction=required%>的页面,也不会出现错误提示,但结果是循环的格式
对于第三个错误,<%server.execute t%>也没有问题
所以利用asp事务处理解决值一类问题感
| 对此文章发表了评论 |
