
 
 | 
| 技术资料  > ASP技术 > ASP应用 : 结束ADOVB.INC的办法 |  
结束ADOVB.INC的办法 March 25,2004 |  
我在国外看到一篇文章,现转译如下。。。的确很有帮助 
 
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 FilesCommon FilesSystemADOmsado20.tlb" 
--> 
 
现在让我们看一下怎么替换ADOVBS.INC文件 
在原来包含该文件的位置替换成如下代码: 
<!-- METADATA  
        TYPE="typelib"  
        FILE="C:Program FilesCommon FilesSystemADOmsado20.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的支持 
 
希望能对你有所帮助 
         |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved