常用的ASP ActiveX 组件介绍


  当你用 ASP 编写服务器端 利用程序时,必须 依附 ActiveX

  组件来 壮大 Web

   利用程序的 性能,譬如:你需要衔接数据库,对数据库进行在线操作等等,继上篇介绍了

  AD Rotator 组件后,本篇将接着给大家介绍其它一些常用的 ASP ActiveX

  组件的 使用 步骤 。

  近期仍有不少朋友来信问我, ASP 是不是不得不在 Microsoft IIS

  上运行,是不是 可以在非 NT

  平台上运作? 原来这个问题我已经 答复过众多遍了 :

  我只不过听说过有某种 可以 支撑的软件,却从没见过 。但一些 热忱的朋友 依旧 不知疲倦地来信询问,

于是在朋友们的盛情之下,我访遍了

  ASP 有关站点,竟惊奇的发现,原来 ASP 确实是 可以运行在其它非 NT

  平台上的, 因此在本篇的开头,我就给来信的朋友们简要介绍一下如何在非

  NT 平台上 使用 ASP 。

  要在非 NT 平台上开发并运行 ASP

   利用程序我们 可以依赖于一套名为 Instant ASP

  的第三方软件,它的广告标语十分吸引人“ASP Anytime, Anywhere”,我想全部

  ASP 的开发者们看到如此的标语必定兴奋不已 。这套由 Halcyon

  软件公司开发的软件使得你无需 反复开发原有 ASP

   利用程序即 可以将它运行在任何操作平台上 !

  这样非但 节俭了大量的开发 工夫,而且使得 ASP

  真正成为了一种跨平台的 Internet、 Intranet 或 Extranet 利用程序 。

  Instant ASP 本身其实是一套基于 Java

  的 利用程序, 因此通过它你 可以将基于 WEB 的 ASP

   利用程序运行在任何平台上,下表列出了 Instant ASP

  目前版本所 支撑的操作平台 。

    更令人吃惊的是 Instant ASP 不只提供了 ASP

  的运作环境,而且它较目前市场上的 ASP

   利用还提供了更为 壮大和有用的 性能,它将 ActiveX 组件和 Enterprise

  Java Beans 或者 CORBA-compliant objects 组合起来,从而使 ASP

  有了更为 宽泛的 利用 。它同样提供了通过 ADO

  接口 拜访衔接各种数据库,并生成动态页面的 壮大 性能 。关于开发者而言 可以 使用自己 善于的编程语言或工具如

  :Visual Basic, Jscript, VBScript, C++, Java, HTML, Delphi , MS Visual InterDev

  等等来进行开发 。关于 Instant ASP

  具体安装和操作我就不在这里铺开了,感兴趣的朋友 可以到它的站点上去看看

  halcyonsoft.com,你还 可 免得费下载一个试用版试试 。

  继上一篇中作者给大家介绍了 AD Rotator

  组件的 使用 步骤后,今日我们接着来看看其它的一些 ASP 常用组件 。

  一、 Database Access 组件

  我们在 WEB 服务器上 使用 WEB

   利用程序进行的最常见和最有用的 使命便是 拜访服务器端的数据库 。而

  ASP 内建的 Database Access 组件使得我们 可以轻而易举地通过 ActiveX Data

  Objects (ADO)

   拜访存储在服务器端的数据库或 其余表格化数据 构造中的信息 。 ADO

  是对目前微软所 支撑的数据库进行操作的最有效和最 方便直接的 步骤,它是一种 性能 壮大的数据 拜访编程模式,从而使得大 部分数据源可编程的属性得以直接 扩大到你的

  Active Server 页面上 。 可以 使用 ADO 去编写紧凑 简洁的脚本以便衔接到

  Open Database Connectivity (ODBC) 兼容的数据库和 OLE DB 兼容的数据源,这样

  ASP 程序员就 可以 拜访任何与 ODBC 兼容的数据库,包括 MS SQL SERVER、Access、Oracle

  等等 。假如您是一个对数据库衔接有 定然了解的脚本编写人员,那么您将发现

  ADO

  命令语句并不复杂而且方便 主宰 。同样地,假如您是一个 教训 丰硕的数据库编程人员,您将会正确 意识

  ADO 的先进的与语言无关性和 查问 解决 性能 。 相熟 VB

  数据库编程的朋友会发现 ADO 与RDO (Remote Data Objects)

  有某种 类似的地方 。但听说 ADO 的 拜访的速度更快,内存需要更小 。

  下面给大家简要介绍一下利用 ASP 的 Database Access 组件通过 ADO

  衔接并操作 WEB 数据库的步骤

  第一步 : 指定想要衔接的数据库,有 DSN 和 DSN-less

  两种 步骤 。

  DSN(Data Source Name 数据源名称 ):

   构建一个系统数据源名称, 步骤如下 :

  1、单击“开始”,选设置操纵面板 。

  2、双击图标“32 位 ODBC” , 将弹出一个对话框,选标签“System

  DSN”

  3、单击“Add”增加一个 DSN 入口 , 取舍如“Microsoft Access Drive”并确认 。

  4、在“Data Source Name”栏里输入你 盼望指定的 DSN, 而后单击“Select” 取舍数据库 存放位置,你 可以按“Browse”来选取 。

  5、以上步骤 实现后在 ASP 程序中指定 DSN,如下 :

  < %connstr = "DSN"%>

  DSN-less: 是另一种通过在 ASP

  文件里直接指定数据库文件所在位置,而无需 构建 DSN

  的 步骤 。因为许多公司没有自己的 WEB

  服务器,他们的网站一般是 存放在远端的 虚构服务器上, 因此要 构建和 批改

  DSN 的设置 比较麻烦 。而 使用 DSN-less

   步骤直接指定远端数据库所在位置 偏偏解决了这一问题, 步骤如下

  :

  

  < %

  connstr =

  "DBQ="+server.mappath("database/source.mdb")+";DefaultDir=;DRIVER={Microsoft

  Access Driver (*.mdb)};DriverId=25;FIL=MS

  Access;ImplicitCommitSync=Yes;MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;

SafeTransactions=0;Threads=3;UserCommitSync=Yes;"

  %>

  

  在指定了想要衔接的数据库后,就 可以通过以下 步骤衔接并 打开数据库

  :

  < %

  Set Conn = Server.CreateObject("ADODB.Connection")Conn.Open constr

  %>

  第二步 : 指定想要执行的 SQL 指令, 可以 使用 RecordSet 。

  当衔接了数据库后就 可以对数据库进行操作, 比方 查问、删除、更新等等,这些操作都是通过

  SQL 指令来 实现的,如下例在数据库表 datebase 中 查问全部姓名中有“A”的记录

  :

  < %

  sql="select * from datebase where name like 'A%%'"

  Set rs = Conn.Execute(sql)

  %>

    只管 Connection 对象简化了衔接数据库和 查问 使命,但 Connection

  对象仍有许多缺乏 。确切地说,检索和显示数据库信息的 Connection

  对象不能用于 缔造脚本,您必须确切晓得要对数据库作出的更改, 而后 威力 使用 查问实现更改 。

关于检索数据、 审查 后果、更改数据库,

  ADO 提供了 Recordset 对象 。正如它的名称所暗示的那样, Recordset

  对象有许多您 可以 使用的 特点,依据您的 查问 制约,检索而且显示一组数据库行,即记录 。

  Recordset

  对象 维持 查问返回的记录的位置,同意您一次一项逐渐扫描 后果 。依据

  Recordset

  对象的指针类型属性设置,您 可以滚动和更新记录 。数据库指针 可以让您在一组记录中定位到特定的项 。

指针还用于检索和 审查记录, 而后在这些记录的 根底上执行操作 。

  Recordset

  对象有一些属性,可用于准确地操纵指针的行为, 普及您 审查和更新 后果的 威力 。

  Recordset 的 使用 步骤如下 :

  Set rs = Server.CreateObject("ADODB.Recordset")

  rs.Open SQL 指令 , Conn, 1, 1 ' 读取

  或

  rs.Open SQL 指令 , Conn, 1, 3 ' 新增、 批改、或删除

  第三步 : 使用 RecordSet 属性和 步骤,并显示执行的 后果 。

  通过以上指令,我们 缔造了一个包括数据的游标 (RecordSet)“rs”,

事实上游标是存储在 运动内存中的 类似记录和字段的数组的东西,当通过

  RecordSet

  组件 缔造一个游标时,它从数据提供者的得到一个数据集,并用它来充实游标,我们 可以 设想

  ADO 产生的 RecordSet

  是一个象电子表格的记录,它有一行行的记录,在任何时候都有一行是它的目前行,而

  RecordSet 的字段是用 RecordSet 的Field 集中 示意的 。下面列出了所 缔造的

  RecordSet 对象 (游标 )的一些属性和 步骤

  :

  rs.Fields.Count: RecordSet 对象的字段总数 。

  rs(I).Name: 第 I 个字段的名称, I 由 0 算起到 rs.Fields.Count-1 。

  rs(I): 读取第 I 个字段的数据, I 由 0 算起到 rs.Fields.Count-1 。

  rs(" 字段名称 "): 读取指定字段的数据 。

  rs.RecordCount: 游标中的数据记录总数 。

  rs.EOF: 是不是已指到最终一条记录 。

  rs.MoveNext: 将指标移到下一笔记录 。

  rs.MovePrev: 将指标移到上一笔记录 。

  rs.MoveFirst: 将指标移到第一笔记录 。

  rs.MoveLast: 将指标移到最终一笔记录 。

  rs.Close: 关闭 RecordSet 对象

  有关 ADO 的 其余介绍,作者将在今后给大家 详尽 讲解 。

  二、 Content Linking 组件

  假如你的网站有一系列 彼此关联的页面的话, Content Linking

  组件将十分 合适你的需要,它非但 可以使你在这些页面中 构建一个目录表,而且还 可以在它们之间 构建动态衔接,

并自动生成和更新目录表及先前和后续的

  Web

  页的导航链接 。这关于列出联机报刊、电子读物网站以及论坛邮件是十分 事实的 取舍 。

  Content Linking 组件 缔造治理 URL 列表的 Nextlink 对象,要 使用 Content

  Linking 组件,必须需要先 缔造 Content Linking List 文件 。 Content Linking

  组件正是通过读取这个文件来 获得 解决我们 盼望链接的全部页面的信息 。事实上该文件是一个纯文本文件,

其内容如下

  :

  page1.htm one

  page2.htm two

  page3.htm three

  page4.htm four

  page5.htm five

  page6.htm six

  这个文本文件的每行有如下 模式 :

  url description comment

  其中, URL 是与页面 有关的超链地址, description

  提供了能被超链 使用的文本信息, comment 则包括了不被 Content Linking

  组件解释的 诠释信息,它的作用如同程序中的 诠释 。 Description 和

  comment 参数是可选的 。

  下面我们来看看如何具体 使用 Content Linking 组件 :

  < html>

  < head>

  < meta http-equiv="Content-Type" content="text/html;

  charset=gb2312">

  < title> 网络电子读物宝藏 < /title>

  < /head>

  < body>

  < p> 网络电子读物导航

  < %

  Set Link = Server.CreateObject("MSWC.NextLink")

  count = Link.GetListCount("nextlink.txt")

  Dim I

  For I=1 to count

  %>

  < ul>< li>< a href="< %= Link.GetNthURL("nextlink.txt",

  I) %>">< %= Link.GetNthDescription("nextlink.txt", I) %><

  /a>

  < % Next %>

  < /body>

  < /html>

  在以上代码中,我们先用 GetListCount 步骤确定在文件

  nextlink.txt 中有多少条 名目, 而后利用循环语句,并 使用 GetNthURL、

  GetNthDescription 步骤 逐个将存储在 nextlink.txt

  文件中的内容读出并显示给客户端阅读器 。

  下面列出了 Content Linking 组件全部可 使用的 步骤

  GetListCount(file) 统计内容链接列表文件中链接的 名目数 。

  GetNextURL(file) 猎取内容链接列表文件中所列的下一页的 URL 。

  GetPreviousDescription(file)

  猎取内容链接列表文件中所列的上一页的 注明行 。

  GetListIndex(file) 猎取内容链接列表文件中目前页的索引 。

  GetNthDescription(file,index) 猎取内容链接列表文件中所列的第 N

  页的 注明 。

  GetPreviousUR(file) 猎取内容链接列表文件中所列的上一页的 URL 。

  GetNextDescription(file)

  猎取内容链接列表文件中所列的下一页的 注明 。

  GetNthURL(file,index) 猎取内容链接列表文件中所列的第 N

  页的 注明 。

  在我们 缔造了网站的总导航页面后,我们固然还 盼望在每一页中增加一个“上一页”、“下一页”的导航超链,

下面我们就来看看如何实现导航超链 。

  因为考量到你的网站可能包括了上千或更多的页面,所以我们不可能在每一个页面中都编写实现导航超链的

  ASP 代码 。 因此,我们必须利用前几篇中所学到的服务器端 包容 SSI,这样就幸免了大量的 反复作业,请看下例

  :

  < !--#include file="nextprev.inc"-->

   惟独将这端代码放在每个页面中即可 。 Nextprev.inc

  文件的内容如下 :

  < %

  Set Link = Server.CreateObject("MSWC.NextLink")

  count = Link.GetListCount("nextlink.txt")

  current = link.GetListIndex("nextlink.txt")

  If current > 1 Then

  %>

  < a href="< %= Link.GetPreviousURL("nextlink.txt") %>">

  上一页 < /a>

  < %

  End If

  If current < count Then

  %>

  < a href="< %= Link.GetNextURL("nextlink.txt") %>">

  下一页 < /a>

  < % End If %>

  今日的学习又到此 完毕了,在这里我要再次 感激全部关怀我的文章的朋友们,你们的来信给了我很大的鼓励,不过请大家不要再称我为“老师”,其实我也同你们一样是在不停的学习和探索中,有问题我们 可以一同探讨,我的文章中 确定还存在众多缺乏或 漏洞,也 盼望大家发现后能及时向我提出 。因为近来

  ASP

  已经在国内的网站中 宽泛 使用起来,所以应朋友们的要求,在国内

  ASP 高手飞鸟的 热忱协助下,我决定写一些 ASP

   利用实例作为现在这篇文章的姊妹篇,这样也就 可 认为大家提供一些真正有用的东西了,敬请关注 。