ASP数据库连接的实现-阿里云开发者社区

开发者社区> 夏春涛> 正文

ASP数据库连接的实现

简介: ASP数据库连接的实现 (Email: xchuntao@163.com)   摘  要:本文给出了ASP中数据库连接的多种实现方法。 关键词:ASP;ADO;OLE-DB;ODBC;数据库连接   1  引言   ASP是目前最流行的Web程序设计技术之一,它使用ADO技术对数据库进行存取。
+关注继续查看
 

ASP数据库连接的实现

(Email: xchuntao@163.com)

 

  要:本文给出了ASP中数据库连接的多种实现方法。

关键词:ASP;ADO;OLE-DB;ODBC;数据库连接

 

1  引言

 

ASP是目前最流行的Web程序设计技术之一,它使用ADO技术对数据库进行存取。ADO是Microsoft目前主要的数据存取技术,它是Microsoft各种数据存取技术,如ODBC、DAO、RDO、OLE-DB演化发展的结果。

ADO是封装了OLE-DB复杂接口的COM对象,它以极为简单的COM接口来存取各种不同的数据。图2是ADO数据存取的架构图。从图中可以看出,ADO可以直接藉由OLE-DB来存取不同数据源的数据,也可以间接籍由ODBC来存取关系型数据源的数据。本文针对这两种方式初步探讨ASP应用程序中数据库连接的实现。

Application/Browser

[图2]--sorry,暂时没有图了。  


2  Connection对象 

ADO中的Connection对象代表与底层数据供应程序的一个连接,它保持着数据供应程序的信息。在ASP应用环境下,Connection对象代表从Web服务器到数据库服务器的一个连接。Connection对象调用Open方法来实现与数据库的连接,它的语法如下:

Connection.Open [ConnectionString],[UserID],[Password],[Options]

Open方法的参数及说明如表1:

 

  1  Open方法的参数及说明

 

 

 

ConnectionString

包含连接细节的字符串。可以是ODBC DSN的名称、数据链接文件的名称或真实的连接细节。可选参数。

UserID

连接期间,用户使用的名字。覆盖连接字符串中提供的任何用户名。可选参数。

Password

用户的口令。覆盖连接字符串中提供的任何口令。可选参数。

Options

可以是adAsyncConnect,指定异步地建立连接。忽略这个参数,则建立一个同步连接。注:因为脚本语言不能接收来自ADO的事件,所以异步连接不用于ASP环境,一般忽略这个参数。

 

从表1可以看出, Open方法实现与数据库连接的关键,是给出正确的ConnectionString。以下以SQL Server2000数据库为例,给出各种连接方式下的ConnectionString。

 

3  OLE-DB连接方式

 

3.1  字符串方式

ConnectionString="Provider=SQLOLEDB.1; Data Source=YourSrc;

UID=YourUid; PWD=YourPwd; Database=YourDB"

ConnectionString="Provider=SQLOLEDB.1; Data Source=YourSrc;

User ID=YourUid; Password=YourPwd; Initial Catalog=YourDB"

其中,Provider为服务于连接的底层OLE-DB数据供应程序的名称;Data Source为服务于底层数据供应程序的数据源名称;UID或User ID为连接时使用的用户名;PWD或Password为连接时使用的密码;Database或Initial Catalog为位于数据库服务器上的一个特定数据库。

3.2  数据链接文件方式

创建一个空文本文件,将其扩展名改为.udl来创建一个数据链接文件。双击该文件打开Data Link Properties对话框,在Provider页选择提供者(不要选择基于ODBC的提供者,因为这样实际上是间接藉由ODBC实现数据库连接),在Connection页指定实现连接的细节。使用数据链接文件进行连接的ConnectionString如下:

ConnectionString="File Name=C:\YourFile.udl"

用记事本打开数据链接文件,可以看到第三行文本是一个连接字符串,指定了连接的细节。如果在Connection页选中了“Allow saving password”,则在该文件中也会记录用户的密码信息。

 

4  ODBC连接方式

 

使用ODBC连接方式,首先要配置ODBC数据源。ODBC数据源配置成功后,就可以相应指定下面介绍的连接字符串进行数据库连接。

4.1  ODBC的系统DSN连接方式

ConnectionString="DSN=SysDSNName;UID=YourUid;PWD=YourPwd;Database=YourDB"

其中,DSN为系统DSN的名称,其它参数与3.1中介绍的参数相同。

4.2  ODBC的文件DSN连接方式

ConnectionString="FileDSN=FileDSNName;UID=YourUid;PWD=YourPwd;Database=YourDB"

其中,FileDSN为文件DSN的名称,其它参数与3.1中介绍的参数相同。

用记事本打开相应的.dsn文件(一般位于C:\Program Files\Common Files\ODBC\Data Sources目录下),可以看到,类似于数据链接文件,该文件中也指定了连接的细节。

4.3  ODBC的无DSN连接方式

ConnectionString="Driver={SQL Server};Server=YourServer;

UID=YourUid;PWD=YourPwd;Database=YourDB")

此方式不用配置ODBC数据源。其中,Driver为ODBC驱动程序名称,Server为数据库服务器名称,其它参数与3.1中介绍的参数相同。

4.4  数据链接文件方式

首先,采用3.2中的方法创建数据链接文件。但进行文件配置时,在Provider页中选择基于ODBC的提供者——Microsoft OLE DB Provider for ODBC Drivers。此方式的ConnectionString与3.2中介绍的相同。

 

5  实例

 

下面是采用OLE-DB的字符串方式,连接到SQL Server2000数据库的示例代码:

<%

ConnectionString="Provider=SQLOLEDB.1; Data Source=YourSrc;

UID=YourUid; PWD=YourPwd; Database=YourDB";初始化连接字符串

Set Conn=Server.CreateObject("ADODB.Connection")  ;创建Connection对象

Conn.Open  ConnectionString                       ;调用Open方法,建立连接

                                                ;进行数据存取操作

Conn.Close                                        ;关闭连接

Set Conn=Nothing                                  ;释放Connection对象

%>

需要注意的是,应尽可能晚的建立连接,同时又尽可能早的关闭连接,这样保证连接打开的时间最短,可以充分发挥OLE-DB的连接缓冲池的作用,节省连接资源;另外,在实际应用中,为避免在每个ASP页面中都输入ConnectionString中的连接细节(这会给程序维护带来麻烦),一般使用包含文件或连接状态来存储ConnectionString,方法如下。

(1)使用包含文件

新建一个ASP文件,不妨命名为Connection.asp,并在其中输入以下代码:

<%

ConnectionString="Provider=SQLOLEDB.1; Data Source=YourSrc;

UID=YourUid; PWD=YourPwd; Database=YourDB"

%>

ASP页面顶端加入这一行语句:

<!--#Include File="Connection.asp"-->

就可以直接在该页中使用ConnectionString。

(2)使用连接状态

global.asa文件中加入下面的代码:

<%

Sub Application_Onstart()

ConnectionString="Provider=SQLOLEDB.1; Data Source=YourSrc;

UID=YourUid; PWD=YourPwd; Database=YourDB"

Set Application("ConnectionString")= ConnectionString

End Sub

%>

此方法将ConnectionString存储在应用程序变量中,所以,在ASP页面中可以使用如下代码实现与数据库的连接:

<%

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

Conn.Open  Application("ConnectionString")

%>

 

6  对比各种连接方式

 

尽管籍由OLE-DB和ODBC都可以实现对数据的存取,但从ADO数据存取架构图(图2)中可以看出,使用ODBC的方式要比OLE-DB的方式多一个层,因此,当访问相同的数据时,ODBC的方式可能会比OLE-DB速度慢一些。

OLE-DB的字符串连接方式与ODBC的系统DSN、文件DSN连接方式相比,省去了建立ODBC数据源的步骤,操作更为简洁。

另外,从形式上我们又可以把连接方式分为:字符串、数据链接文件、DSN三种方式。直接的连接字符串方式可能速度快一些,因为它提供所有的连接细节。数据链接文件方式需要从文件中读出连接细节,DSN方式需要从注册表中读取ODBC数据源的连接细节。

综上,在ASP应用程序中,OLE-DB的连接方式要优于ODBC的连接方式;字符串连接方式要优于非字符串连接方式。

 

参考文献:

[1]李维.Delphi5.x ADO/MTS/COM+高级程序设计篇.北京:机械工业出版社,2000

[2]Weissinger A. 冯延晖,王永庆,刘海明译.ASP技术手册.北京:中国电力出版社,2001

[3]Anderson R等.刘福太等译.ASP3高级编程.北京:机械工业出版社,2000

[4]李华斌.Active Server Pages实用教程.北京:中国水力水电出版社,2000

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Hystrix
在微服务中,服务与服务之间的调用经常出现两个不确定性因素: 1. 网络延迟 2. 服务异常
4 0
有人问你什么是CAP?你就把这篇文章发给他
CAP定理是分布式存储系统的基石,分布式系统(distributed system)指的是建立在网络上的软件系统,它是多个计算机节点通过协调工作的方式,共同完成任务的系统。分布式系统解决了单个计算机无法完成的计算和存储任务。但是分布式系统的设计十分复杂,设计者必定面临诸多挑战,比如节点故障、网络分区、异地网络等等问题。
7 0
分页问题|学习笔记
快速学习 分页问题
4 0
区块链之旅(四)双花攻击、博弈论、Hash函数、数字签名
双花”,即一笔钱被花了两次或者两次以上,也叫“双重支付” “双花攻击”,又叫“双重消费攻击”,即同一笔资金,通过某种方式被花费了两次,取得了超过该笔资金的服务。
6 0
单例模式
单例模式(Singleton Pattern),确保一个类只有一个实例,并提供对它的全局访问点。
18 0
布隆(Bloom Filter)过滤器
布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。
4 0
HyperLogLog
HyperLogLog是用来做基数统计的算法,它提供不精确的去重计数方案(这个不精确并不是非常不精确),标准误差是0.81%,对于UV这种统计来说这样的误差范围是被允许的。HyperLogLog的优点在于,输入元素的数量或者体积非常大时,基数计算的存储空间是固定的。在Redis中,每个HyperLogLog键只需要花费12KB内存,就可以计算接近2^64个不同的基数。
4 0
LRU(Least Recently Used)
Redis是基于内存存储的key-value数据库,我们知道内存虽然快但空间小,当物理内存达到上限时,系统就会跑的很慢,这是因为swap机制会将部分内存的数据转移到swap分区中,通过与swap的交换保证系统继续运行;但是swap属于硬盘存储,速度远远比不上内存,尤其是对于Redis这种QPS非常高的服务,发生这种情况是无法接收的。(注意如果swap分区内存也满了,系统就会发生错误!)
5 0
【小白视角】大数据基础实践(二)Hadoop环境搭建与测试
【小白视角】大数据基础实践(二)Hadoop环境搭建与测试
5 0
先融合再填充,上海交大提出少样本图像生成新方法F2GAN
少样本图像生成是很有挑战性的任务,可用的方法也很少。近日,上海交大和 Versa-AI 的研究人员合作发表论文,提出了先融合后填充(fusing-and-filling)的思想,以便更合理地融合条件图片并完善生成图片的细节信息。目前,这篇论文已被 ACM MM2020 会议接收。
6 0
+关注
夏春涛
曾任教于信息工程大学16年,长期从事计算机软件与信息安全教学科研工作,目前任职于某软件公司从事技术管理工作,擅长架构设计、开发管理,对大数据、分布式颇感兴趣。
271
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载