|
我在國(guó)外看到一篇文章,現(xiàn)轉(zhuǎn)譯如下。。。的確很有幫助
ASP的一個(gè)缺點(diǎn)是當(dāng)我們?cè)谑褂靡粋(gè)組件的時(shí)候,并不是拿來就可以用了比如你要使用ADO的時(shí)候,你得先包含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
'... %>
現(xiàn)在讓我們換個(gè)別的方法試試看 用METADATA標(biāo)簽
該標(biāo)簽的格式如下: <!--METADATA TYPE="typelib" FILE="FileName" UUID="TyleLibraryUUID" -->
首先,你需要set TYPE="typelib",其中FILE和UUID兩個(gè)只需要指定一個(gè)就可以了 您可以直接指定TLB或者DLL文件給FILE屬性。 打個(gè)比方,在我的機(jī)器上,我是這樣做的:
<!-- METADATA TYPE="typelib" UUID="00000200-0000-0010-8000-00AA006D2EA4" -->
和
<!-- METADATA TYPE="typelib" FILE="C:\Program Files\Common Files\System\ADO\msado20.tlb" -->
現(xiàn)在讓我們看一下怎么替換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好好的,為什么要使用這么長(zhǎng)的一竄代碼呢,太麻煩了,是的,是有點(diǎn)麻煩,但是您可以把這段代碼放在GLOBAL,ASA里,那樣你可以用APPLICATION獲得一個(gè)全局變量。 注意要放在<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"
這個(gè)是原文 http://msdn.microsoft.com/library/psdk/bdg/bdgapp03_3rhv.htm
兩點(diǎn)要注意的地方,當(dāng)您在GLOBAL。ASA里使用METADATA的時(shí)候,而您同時(shí)又使用ADOVBD。INC,您會(huì)得到一個(gè)錯(cuò)誤。 其次是該方法至少需要IIS4的支持
希望能對(duì)你有所幫助
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!