结束ADOVB.INC的办法
2024-07-21 02:15:34
供稿:网友
,欢迎访问网页设计爱好者web开发。我在国外看到一篇文章,现转译如下。。。的确很有帮助
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的支持
希望能对你有所帮助