首页 > 语言 > 关键词 > asp最新资讯 > 正文

ASP基础教程:常用的 ASP ActiveX 组件

2008-10-14 15:15 · 稿源:tech.163.com
       当你用 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={MicrosoftAccessDriver(*.mdb)};
DriverId=25;FIL=MSAccess;
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 则包含了不被 Content Linking 组?馐偷淖⑹托畔ⅲ??淖饔萌缤?绦蛑械淖⑹汀?description 和 comment 参数是可选的。

以下为引用的内容:

url 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 %>

  • 相关推荐
  • 大家在看
  • iOS14小组件怎么删除

    苹果在iOS14系统中加入了很多新功能,其中小组件功能被认为是iOS14界面改变最大的一个功能。小组件功能要怎么进行添加和删除操作呢,这里我们来一起看下小组件的删除操作方法。

  • iPhone小组件怎么叠放

    苹果iPhone在iOS14系统中加入了桌面小组件国内,用户可以将应用程序的某个功能单独放置到桌面中,让用户快速启动查看,如何在iPhone上添加桌面小组件呢,以及将小组件进行叠放设置,以下我们来看下具体的操作方法。

  • iOS14小组件怎么添加到桌面

    苹果在iOS14系统中加入了小组件的新功能,这个功能被认为是iOS14最重要的一个更新,那么小组件功能具体要怎么使用,如何将小组件添加到苹果手机桌面呢,我们来一起看下具体的操作方法吧。

  • iOS 14小组件被调侃:Windows Phone早已支持

    6月23日凌晨,苹果iOS 14正式推出。知名科技媒体The Verge主编Tom Warren在推特发文,我刚刚升级到了iOS 14,Wow,配图是运行Windows Phone系统的诺基亚Lumia手机。Tom Warren这是暗示iOS 1

  • 百度MIP功能下线 MIP核心、组件等前端静态资源仍可使用

    6 月 4 日,百度搜索资源平台发布《MIP入口下线通知》称,因业务调整,搜索资源平台的“资源提交-MIP”入口即日起下线。MIP核心、组件等前端静态资源仍正常维护与使用,不影响已改造为MIP标准的站点的正常访问、收录、排序。

  • 嘉实基金:ETF具有四大基础优势

    展望2020年,随着A股机构化、国际化进程的推进,市场效率不断提高,ETF人气暴涨,成为众多投资者们的投资选择。嘉实基金认为目前高股息率、业绩稳定的蓝筹股估值正处于相对合理的位置,具有中长期投资价值。各位投资者在投资的过程中应以时间换空间的中长期视角面对,拒绝追涨杀跌,坚持长期投资。ETF的四大基础优势ETF作为一种在交易所上市交易的的开放式基金,具备四个优势特征:第一,持续推旧换新。例如沪深300指数十年间权重?

  • 苹果iOS14带来大更新 iPhone主屏幕可添加小组件

    苹果首次在线上举办全球开发者大会WWDC20。在本次大会上,苹果会照例对iOS、iPadOS、macOS、watchOS、tvOS进行更新,从每年WWDC的软件蓝图中,开发者和用户都能大致看到苹果未来产品的走向与大致定位,从今年的新iPad Pro定位直指电脑不难发现,苹果也势必会将旗下诸多OS做进一步融合。首先带来的是iOS的更新,在全新的iOS14上,首先对iOS的主屏幕进行了颠覆性革新,推出了应用App?

  • exands连续被海底捞点赞,基础架构为餐企降本增效

    有人说海底捞的成功来自于独特的企业文化,感动员工,让员工去感动客人。其实海底捞跟供应商之间的关系也是一样的,以诚意相互成就,一起成长。今年 5 月,exands(兴容信息)被海底捞评选为 2019 年度优秀合作伙伴。exands是海底捞国内所有门店的信息化基础架构运营商,已连续两年荣获该奖。年初,餐饮行业经历了全面洗牌,一些中小商家因歇业、现金困境而被迫关门倒闭,大型连锁企业通过各种方式来减少支出,思考转型升级,借助?

  • Pensando在云基础架构霸权之战中挑战亚马逊

    统一网络组件,以便可以整体使用它们是思科系统公司通过恰当地命名为统一计算系统(通常称为UCS)解决的难题。现在,随着软件使用量的不断发展变化,随处可用,随时可用的模型,挑战在于如何使网络变得灵活。随着Pensando Systems Inc.在隐身模式下于2019年底推出,思科著名的MPLS帮派及其USC团队正着手为网络基础架构创造新的选择,并挑战Amazon Inc.的Annapurna Labs创新王冠。“让我们建造更大,更美的东西,即使我们

  • 特斯拉柏林超级工厂建设加速:一期基础基本成型 钢结构开始进场

    【TechWeb】6月15日消息,据国外媒体报道,在苹果新总部苹果园的建设过程中,无人机爱好者们曾多次光顾这一造价高达50亿美元、乔布斯生前就已完成主体规划、造型似巨大飞船、科技含量极高的新园区,向外界传递建设的进展。而现在,苹果新总部虽已建成并投入使用近两年,但无人机爱好者们光顾知名厂商工厂或办公设施建设工地的状况仍在继续,现在是电动汽车厂商特斯拉,他们在德国柏林的超级工厂建设工地,已多次被光顾,近日又有?

  • 玖富万卡:助力构建数字技术为基础的全方位普惠体系

    普惠金融被推上高速发展的通道,得益于数字技术与金融的深度融合,5G时代的到来将进一步加速这种融合。构建数字技术为基础的全方位普惠体系或是今年全国“两会”的议题之一。在科技赋能领域玖富万卡无疑是成功的,作为科技创新型产品,玖富万卡用实力与成绩交出了满意的答卷。玖富万卡:紧跟时代潮流 助力数字普惠构建基于数字与科技的结合,玖富万卡在风控领域取得了不俗的成绩。在不断的升级与实践中,玖富万卡最终成功地打造出?

  • 西瓜视频开通广告收益教程

    ​西瓜视频的广告一般会展示在视频开始或结尾的地方,开通西瓜视频广告收益后,作者将享有一定的广告收益。而平台为了平衡用户体验,并不是每次刷新都会有广告出现。那么怎么开通西瓜视频广告收益呢?以下是关于西瓜视频开通广告收益的详细介绍。

  • 比尔盖茨大赞的保时捷Taycan推出基础版:国内售价88.80万元

    日前,保时捷以线上直播的方式发布了Taycan的入门版车型Taycan基础版,这也是继Taycan 4S、Taycan Turbo、Taycan Turbo S之后的第四款车型,其在中国的售价为88.80万元。Tayc

  • 老车主专属福利!特斯拉基础版辅助驾驶降价9300元

    爱在社交媒体网站上放飞自我的特斯拉CEO马斯克,今日在微博放出了3则重磅消息。首先,马斯克表示,即日起,特斯拉将下调旗下车型基础版辅助驾驶(AP)选装包的价格,当前定价为1.85万元,相比

  • 不会演戏的网红不是好厨子 ,剧情美食教程怎么上热门?

    当你无意间刷到这些视频时,小小的眼睛里开始出现大大疑惑。惊讶中有一丝不屑,不屑中又有一丝好奇。

  • 西瓜视频PC电脑版下载教程

    西瓜视频是一个内容覆盖很广的视频APP,里面的短视频内容很丰富。不过现在只有安卓版和iOS版,有人想要下载使用PC电脑版,具体在哪里可以下载呢,这里我们来看下电脑版的具体安装方法。

  • 研究机构:一季度全球云IT基础设施支出同比增长2.2%

    【TechWeb】6月29日消息,据国外媒体报道,今年一季度,汽车、航空等众多行业都受到了影响,但云计算并未受到明显的不利影响,相反,企业和机构对云计算的需求还有增加。对云计算需求的增加,也拉动了对云IT基础设施的需求,有研究机构表示,一季度全球云IT基础设施支出同比仍在继续增长。研究机构提及的云IT基础设施,包括用于云环境的服务器、企业存储和以太网交换机,公有云和私有云均包括在内。从研究机构公布的数据来看,全?

  • docker怎么安装MySQL docker安装MySQL教程

    把MySQL放进Docker,总共需要几步?本次就通过社区版容器安装2个mysql实例,看一下部署有多简单。

  • 最强蜗牛怎么换区 超详细换区步骤教程

    ​最强蜗牛中其实是可以进行换区操作的,但是很多人还不明白到底要怎么才能进行换区,所以今天就来为大家分享一下最强蜗牛换区步骤教程。

  • 即刻怎么改密码 新版本即刻密码修改教程

    即刻APP经常的会碰到要修改密码的操作,很多人还不清楚在哪可以比较方便的改密码,下面就来为大家详细的介绍一下。

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议