結束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的支持
希望能對你有所幫助