我在国外看到一篇文章,现转译如下。。。的确很有帮助
asp的一个缺点是当我们在使用一个组件的时候,并不是拿来就可以用了比如你要使用ado的时候,你得先包含adovbs.inc文件或者做类似的工作,看下面的代码:
<!--#include virtual="/adovbs.inc"-->
<%
dim objconn, strsql
set objconn = server.createobject("adodb.connection")
objconn.open "dsn=blah"
strsql = "select * from table1"
dim objrs
set objrs = server.createobject("adodb.recordset")
objrs.open strsql, objconn, adopenkeyset
'...
%>
现在让我们换个别的方法试试看
用metadata标签
该标签的格式如下:
<!--metadata
type="typelib"
file="filename"
uuid="tylelibraryuuid"
-->
首先,你需要set type="typelib",其中file和uuid两个只需要指定一个就可以了
您可以直接指定tlb或者dll文件给file属性。
打个比方,在我的机器上,我是这样做的:
<!-- metadata
type="typelib"
uuid="00000200-0000-0010-8000-00aa006d2ea4"
-->
和
<!-- metadata
type="typelib"
file="c:\program files\common files\system\ado\msado20.tlb"
-->
现在让我们看一下怎么替换adovbs.inc文件
在原来包含该文件的位置替换成如下代码:
<!-- metadata
type="typelib"
file="c:\program files\common files\system\ado\msado20.tlb"
-->
<%
dim objconn, strsql
set objconn = server.createobject("adodb.connection")
objconn.open "dsn=blah"
strsql = "select * from table1"
dim objrs
set objrs = server.createobject("adodb.recordset")
objrs.open strsql, objconn, adopenkeyset
'...
%>
但是,我原来在原来的页面使用adovbs。inc好好的,为什么要使用这么长的一窜代码呢,太麻烦了,是的,是有点麻烦,但是您可以把这段代码放在global,asa里,那样你可以用application获得一个全局变量。
注意要放在<script>块里面
让我们看看微软怎么说的,我只找到了一篇文章,该文章可概括如下:
"avoid using server-side #include directives to include large lists of constants. use the new <metadata> tag to import type-library constants into global.asa"
这个是原文
http://msdn.microsoft.com/library/psdk/bdg/bdgapp03_3rhv.htm
两点要注意的地方,当您在global。asa里使用metadata的时候,而您同时又使用adovbd。inc,您会得到一个错误。
其次是该方法至少需要iis4的支持
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器