当前位置: 首页 > 图文教程 > 网络编程 > ASP > 结束ADOVB.INC的办法

ASP
收集整理的ASP的常用内置函数
高手推荐的比较有用的ASP函数集合
ASP中JavaScript处理复杂表单的生成与验证
asp下tag的实现,简单介绍与部分代码
在ASP中用组件检测当前网卡地址的代码
asp中COM组件中如何连接数据库的代码
用ASP创建MDaemon用户的代码
ASP使用FSO读取模板的代码
ASP开发中可能遇到的错误信息中文说明大全(整理收集)
添加超级用户的.asp代码[蓝屏的原创,凯文改进,Ms未公布的漏洞]
全面优化ASP应用程序的性能的方法
实现ASP程序执行时间统计类的代码
ASP中利用execute实现动态包含文件的方法
asp中向文本框输出数据原样式的函数
ADODB.Stream组件Charset属性值集合
关于ASP代码的加密的几个方法
支持权重的无组件ASP广告显示代码
ASP下实现自动采集程序及入库的代码
asp读取远程文件并保存到本地代码
为什么ASP中执行动态SQL总报错误信息?提示语句语法错误

ASP 中的 结束ADOVB.INC的办法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 129 ::
收藏到网摘: n/a

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

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

希望能对你有所帮助