结束ADOVB.INC的办法

王朝vb·作者佚名  2006-11-24
宽屏版  字体: |||超大  

我在国外看到一篇文章,现转译如下。。。的确很有帮助

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的支持

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有