欢迎光临
我们一直在努力

ASP数据库连接的实现-ASP教程,数据库相关

建站超值云服务器,限时71元/月

asp数据库连接的实现

夏春涛

(解放军信息工程大学电子技术学院102教研室,河南 郑州 450004)

(email: xct-tom@tom.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应用程序中数据库连接的实现。

图 1 ado数据存取架构

application/browser

ado

ole-db

odbc

sql data

non sql data

mainframe and

legancy data

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

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP数据库连接的实现-ASP教程,数据库相关
分享到: 更多 (0)