程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 結束ADOVB.INC的辦法

結束ADOVB.INC的辦法

編輯:ASP技巧

我在國外看到一篇文章,現轉譯如下。。。的確很有幫助

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"

兩點要注意的地方,當您在GLOBAL。ASA裡使用METADATA的時候,而您同時又使用ADOVBD。INC,您會得到一個錯誤。
其次是該方法至少需要IIS4的支持

希望能對你有所幫助

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved