陈静捷
摘要:主要介绍ASP与Access、Sql server、Oracle的连接方式。
关键词:ASP;ADO;OLE DB;ODBC数据库连接
中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)05-1006-03
ASP是目前流行的开放式WEB应用程序开发技术。ASP能将脚本、HTML、组件和强大的WEB数据库访问功能结合在一起,形成一个能在服务器上运行的应用程序,并按用户要求制作专门的页面传递给客户端浏览器。数据库是管理大量、一致、可靠、共享、持久的数据资源的计算机软件产品。数据库软件是动态网站实现互动效果的一个非常重要的核心组件,是支撑以电子商务、网上论坛和信息发布为代表的一系列网络服务的坚强支柱。因此在ASP中如何建立与不同类型数据库的连接就显得尤为重要。
ASP必须建立与数据库的联系才能使用数据库中的数据。在ASP中,用来存取数据库的对象统称为ADO组件,它的主要对象有三种:Connection、Recordset、Command。Connection对象又称连接对象,用来和数据库建立连接,用Connection对象建立连接后,才可以利用Command对象或Recordset对象对数据库进行各种操作;Recordset:负责存取数据;Command对象定义将用于对数据源执行的指定命令。
ASP与数据库的互连是通过ODBC或者OLE DB实现的,它们都为ASP提供统一的数据库访问接口。ODBC(Open DataBase Con? nectivity)即开放数据库互连,它将所有对数据库的底层操作全部隐藏在ODBC的驱动程序内核里。对于用户来说,只要构建了一个指向数据库的连接,就可以采用统一的应用程序编程接口(API)就实现对数据库的读写,或者用相同的代码访问不同类型的数据库。
1创建DNS数据源
在ASP中利用ADO对象来操作数据库,首先要创建一个指向数据库的ODBC连接。
在Windows系统中,ODBC的连接主要是通过ODBC数据管理器来完成的,数据库驱动程序使用数据源DSN(Data Source Name)定位和标识特定的ODBC兼容的数据库,构建ODBC连接就是创建与数据源的连接,也就是创建DSN。一旦创建了指向数据库的ODBC连接(DSN),同数据库连接的有关信息就被保存在DSN中。
DSN分为用户、系统和文件三种类型。用户DSN一般不用。文件DSN将信息保存在独立的文件Global.asa中,如果希望将整个WEB应用程序和数据库移动到其他计算机中,只需连同生成的DSN文件一起移动即可,故使用较方便。系统DSN将信息保存在注册表中,移动不方便,但便于修改,只需简单地修改Windows的注册表即可,如果在同一台计算机上有多应用程序需使用一个DSN,那么使用系统DSN更为方便。
比如,如果你有一个访问Access数据库的程序,数据源(ODBC)会允许您用同一个程序访问SQL数据库中的数据。至于具体访问细节你就不用关心,完全由ODBC自动来完成。
举例:创建系统DNS数据源
建立一个数据库wwwlink.mdb,表为link;建立数据源名为wwwlink。
依次选择【开始】/【设置】/【控制面板】/【管理工具】/【数据源(ODBC)】选项,创建DNS数据源,即可完成操作。
图1 ODBC数据源管理器
图2创建新数据源
图3 ODBC Access安装
2创建基于ODBC的数据库有源连接(利用DSN数据源连接数据库)
Set Connection对象=Server.Create(“ADODB.Connection”)
Connection对象.open连接字符串或变量
例如:<% dim cn
Set cn= Server.Create(“ADODB.Connection”)
cn.open“DSN=wwwlink;UID=sa;PWD=”
%>
其中:UID表示用户名,PWD表示用户密码。创建有ODBC数据源的连接方法书写简便,也不容易出错,但当数据库移动位置后,需重新设置数据源,所以可移植性差。
3利用用ODBC连接字符串连接数据库
数据库也可以不设数据源,用ODBC连接字符串连接数据库,但要用到Driver和Dbq两个参数。
3.1 ASP连接Access数据库
<%
dim cn,dbfile
mdbfile=server.mappath("数据库名称.mdb")
set cn=server.createobject("adodb.connection")
cn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&dbfile
%>
3.2 ASP连接Sql server连接方法
<%
dim cn
set cn=server.createobject("adodb.recordset")
cn.open"driver={sql server};server=(local);uid=***;pwd=***;"& _"database=数据库名
%>
3.3 ASP连接Oracle连接方法
<%
dim cn
set cn=server.createobject("adodb.connection")
cn.open"driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"
%>
创建没有ODBC数据源的应用程序移植到别的服务器上后,就可以立即使用,因此它是应用程序中比较常用的数据库连接方法。
4创建基于OLE DB的连接字符串的连接
OLE DB是微软的战略性的通向不同的数据源的低级应用程序接口。OLE DB不仅包括微软资助的标准数据接口开放数据库连通性(ODBC)的结构化问题语言(SQL)能力,还具有面向其他非SQL数据类型的通路,即OLE DB的对象则是范围更为广泛的任何数据存储。
如果在“ODBC数据库管理器”中没有建立DSN,那ADO便使用提供的OLE DB连接字符串来识别OLE DB提供者,并将提供者指向数据源。
首先创建连接对象:
<% dim cn
set cn=server.createobject("adodb.connection")
%>
1)ASP连接Access数据库OLE DB连接方法:
<% cn.open"provider=microsoft.jet.oledb.4.0;"& _"data source=" & server.mappath("数据库所在路径")%>
2)ASP连接Sql server数据库OLE DB连接方法:
<% cn.open"provider=sqloledb.1;data source=ritant4;"& _"user id=***;password=***;"& _"inital catalog=数据库名"%>
3)ASP连接Oracle数据库OLE DB连接方法:
<% cn.open"provider=oraoledb.oracle;data source=dbname;user id=admin;password=pass;"%>
尽管OLEDB与ODBC都可以实现对数据库的存取操作,从ADO数据存取架构上看,访问相同数据时,ODBC可能比OLEDB速度快一些,但OLEDB字符串连接方式,省去了建ODBC数据源的步骤,适用的数据库范围更广,操作更加简洁,所以更为常用些。
因此在ASP应用程序中,OLE DB连接方式要优于ODBC的连接方式。
参考文献:
[1]李华斌.Active Server Pages实用教程[M].北京:中国水利出版社,2000.
[2]陈建伟,陈焕英.Asp动态网站开发教程[M].3版.北京:清华大学出版社,2008.