一种比使用include adovbs.inc更好的方法_.NET教程_编程技术_ASP.NET_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • ASP.NET

    当前位置:主页 > 网络编程 > ASP.NET >

    一种比使用include adovbs.inc更好的方法_.NET教程_编程技术

    时间:2019-07-12|栏目:ASP.NET|点击:
  • ado|include Using METADATA to Import DLL Constants
    One disadvantage of ASP is that when using a component, the component's constants aren't immediately avaialable. For example, if you want to use the ADO constant adOpenStatic you need to include adovbs.inc. While there is nothing wrong with this, wouldn't it be nice not to have to always be sure to include adovbs.inc each time that you wanted to use an ADO constant?

    Your days of including adovbs.inc are over! The METADATA tag can be used to automatically import the constants from a DLL or TBL file. For example, imagine that we wanted to crate a recordset object with a Keyset cursor. We'd have to use code similar to:

    <!--#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

    '...
    %>



    We can use the METADATA tag in place of the <!--#include virtual="/adovbs.inc"-->. The METADATA tag has the following form:

    <!--METADATA
    TYPE="typelib"
    FILE="FileName"
    UUID="TyleLibraryUUID"
    -->



    First off, you need to set TYPE="typelib". Concerning the other two parameters, FILE and UUID, you need to only specify one. You can either specify the TBL or DLL file directly with the FILE property, or through the UUID. For example, on my machine, the following two statements would be identical:

    <!-- METADATA
    TYPE="typelib"
    UUID="00000200-0000-0010-8000-00AA006D2EA4"
    -->



    and

    <!-- METADATA
    TYPE="typelib"
    FILE="C:/Program Files/Common Files/System/ADO/msado20.tlb"
    -->



    You can then place this METADATA tag in place of the #include. For example, the first script we examined would be changed to:

    <!-- 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

    '...
    %>



    Now, why would anyone want to use this longer METADATA tag on each page as opposed to the standard #include file="adovbs.inc"? Well, no one probably would want to do that. However, you can place the METADATA tag in your Global.asa file, which will give every ASP page in your web application knowledge of the ADO constants! Pretty sweet, eh? The METADATA tag should come before the <SCRIPT ...> block in Global.asa. (It doesn't have to be placed there, but why not do that, just to make me happy?)

    Anyway, besides saving typing and having to include adovbs.inc in all of your pages that need to access ADO constants, using METADATA supposedly increases performance. At least according to Microsoft. All I could find regarding the performance boost was one sentence- no benchmarks, no hard numbers. The sole sentence reads as follows:

    "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"
    -- Taken from ASP Performance Tips
    A couple of caveats: first, from alert reader Daniel S., if you include adovbs.inc when using the METADATA tag in Global.asa, you will get a Name redefined error. Second, the METADATA tag will only work with IIS 4.0 and up.

    Comments from Alert Reader Rohan P.
    I was just looking at the article Using "METADATA to Import DLL Constants". There are a couple of points worth bearing in mind.
    Firstly, you can import any type libray constants into Global ASA, not just the ADO ones. I also import the FileSystemObject and CDO constants this way.

    Secondly, Visual Interedev 6 gives you a neat way of doing it without needing to either know the GUID of the type libray, or referencing the dll directly. Just go to Projects - References. All the type libraries are listed there, and when selected, will automatically get written into Global ASA!

    Well, there you have it. Happy Programming!



    上一篇:不用 EOF 以加快记录循环(vb)转贴_.NET教程_编程技术

    栏    目:ASP.NET

    下一篇:VB/ASP 调用 SQL Server 的存储过程_.NET教程_编程技术

    本文标题:一种比使用include adovbs.inc更好的方法_.NET教程_编程技术

    本文地址:http://www.jh-floor.com/wangluobiancheng/ASP_NET/3454.html

    广告投放 | 联系我们 | 版权申明

    重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

    Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号