ASP与ACCESS数据库连接的讨论
2013-12-10赵志娟
赵志娟
(上海电气集团上海电机厂有限公司,上海 200240)
0 引言
产生于20世纪90年代初的万维网(World Wide Web)在迅速发展的今天,是互联网非常重要的信息资源网,遵循超文本传输协议,以超文本或超媒体的形式传送各种各样的信息,为用户提供具有友好的图形化界面,以查阅互联网上的各类信息。信息的实现方式就是通过各类编程语言。本文以ASP、ACCESS为例讨论两种程序数据库的访问和程序错误的处理。
1 ASP与ACCESS概述
1.1 ASP
ASP(Active Server Pages)是一套微软开发的服务器端脚本环境,它内含于IIS(Internet Information Server)或 PWS(Personal Web Server)中,是微软公司开发的代替CGI脚本程序的一种应用,可以与数据库和其它程序进行交互,是一种简单、方便的编程工具,是运行动态、交互的Web服务器应用程序。
ASP的工作原理框图如图1所示。当客户端浏览器上某用户申请一个*.asp的文件(ASP文件的后缀名为.asp)时,Web服务器就会响应该HTTP请求,并调用ASP引擎,解释被申请文件,最后输出标准的HTML格式文件传送给客户端浏览器,由浏览器解释运行,并显示出结果。
图1 ASP工作原理框图
当遇到任何与ActiveX Scripting兼容的脚本(如VBScript和JavaScript)时,ASP引擎会调用相应的脚本引擎进行处理。若脚本指令中含有访问数据库的请求,就通过ODBC与后台数据库相连,由数据库访问组件执行访问操作等。由于ASP脚本是在服务器端解释执行的,所以其所有相关的发布工作都由Web服务器负责。
1.2 Access
Access是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS,即 Relational Database Management System),是 Office系列应用软件之一,支援部分面向对象(OOP)技术,但是未能成为一种完整的面向对象开发工具。其特点如下:
① 提供表、查询、窗体、报表、页、宏、模块七种用来建立数据库系统的对象;
② 提供多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;
③ 能够存取 Access/Jet、Microsoft SQL Server、Oracle(甲骨文软件公司),或者任何 ODBC兼容数据库内的资料。
2 数据库的访问
2.1 ASP访问数据库
2.1.1 在ASP中建立数据库连接
ASP中使用ADO对象进行数据库的连接和调用。ADO称为“Active数据对象”,是基于组件的数据库编程接口,提供访问各种数据类型的连接机制,与编程语言无关的COM(Component Object Model)组件系统,是统一数据访问方式OLE DB的一个中间层,是 OLE DB/ODBC的使用者。它提供了对OLE DB数据源的应用程序级的访问。在ASP中,可以使用ADO通过OLE DB的数据库驱动程序直接访问数据库,也可以编写紧凑简明的脚本以便连接到ODBC兼容的数据库。
1)用ODBC方式连接数据库
ODBC(Open Database Connectivity,开放数据库连接)是微软开放的服务结构中有关数据库的一个组成部分。通过ODBC方式建立的应用程序,不依赖于任何数据库管理系统,不直接与任何DBMS(数据库管理系统)交互。
2)ODBC工作原理
ODBC驱动程序类似于Windows下的打印机驱动程序,通过ODBC驱动程序管理器统一对应用程序对数据库的访问进行规范化管理:
① ODBC的所有驱动程序都是动态连接库DLL(Dynamic Link Library),由 ODBCADM.DLL驱动程序管理器统一进行管理。
② 任何DBMS,只要提供了并符合ODBC接口规范的DLL库,便可以加载到系统中被ODBC建立的应用程序所访问。
③ ODBC.DLL通过WINDOWS系统注册表(或ODBC.INI文件)中的数据源 (Data Source)了解到对某个数据库应调用哪个DLL。每个数据源对应一个数据库驱动程序库(DBMS或ISAM文件)。
3)ODBC接口支持的SQL语句
ODBC驱动程序有两类,第一类含有SQL语句处理功能,第二类则没有SQL语言处理功能。
4)创建系统DSN
使用ODBC连接数据库,必须提供一条使ADO定位、标识和与数据库通讯的途径。那么ODBC就使用数据库驱动程序Data Source Name(DSN,数据源)定位和标识特定的ODBC兼容数据库,DSN包含数据库配置、用户安全性和定位信息。
① 创建文件DSN
建立文件DSN,关于数据库的配置将保留在一个.dsn文件中,ODBC数据源通过读取.dsn文件中的配置来建立和数据库的连接。
② 创建无DSN的连接
利用ADO连接数据库除了使用ODBC数据源DSN外,也可以创建无DSN的ODBC连接和基于OLE DB。
(ⅰ)无DSN的连接
对于SQL Server2005数据库,一般需要用到Driver和Server两个参数,连接方法如下:
(ⅱ)通过OLE DB的数据库驱动程序直接访问数据库
一般OLE DB的数据库连接需要用到Provider和Data Source两个参数,连接方法如下:
5)ADO对象中的主要对象
ADO对象结构如图2示,主要对象是Connection对象,Command对象,Recordset对象。其中Connection对象为连接对象,Command对象为命令对象,Recordset对象为记录集对象。本文讨论Connection和Recordset对象。
图2 ADO对象结构图
Connection对象代表了打开的、与数据源的连接,该对象代表与数据源进行的唯一连接会话。ASP在Connection对象的基础使用Command对象及Recordset对象来对Connection对象所连接的数据库进行插入、删除、更新和查询等操作。
② Connection对象的创建
(ⅰ)在ADO中建立对象需要用到Server对象的CreateObject方法,格式:Set Connection对象 =Server.CreateObject(“ADODB.Connection”)。
(ⅱ)创建了Connection对象后,就可以调用Open函数来打开数据库。Open函数的格式:Conn.Open“参数1=值;参数2=值;参数3=值……”
(ⅲ)Execute方法执行SQL命令或存储过程,有返回记录的格式为:Set Rs=Connection对象.Execute(CommandText,RecordsAffected,Options);无返回记录的格式为:Connection对象.Execute(CommandText,RecordsAffected,Options)
③ Recordset对象
Recordset对象表示来自基本表或命令执行结果的记录全集,其所指的当前记录为集合内的单条记录,通过使用Recordset对象,则可以方便自如地操作Command对象返回的结果。
④ Recordset对象的创建
(ⅰ)标准的Recordset对象的标准建立语句如下:SetRecordset对 象 = Server.CreateObject(“ADODB.Recordset”),也可以使用 Connection 对象和Command对象的Execute方法返回Recordset对象
(ⅱ)需要调用Recordset对象的Open方法打开打开一个数据库,格式如下:Recordset对象.Open Source, ActiveConnection, CursorType, LockType,Options
(ⅲ)Recordset对象的操作步骤:第一步,创建Connection对象,打开数据连接;第二步,创建Recordset对象;第三步,打开Recordset取得数据;第四步,关闭Recordset对象;第五步,关闭与数据库的连接。
2.1.2 ACCESS访问数据库
1)VBA数据库访问接口
ACCESS程序访问数据库是通过VBA数据库访问接口,与后台数据库进行连接。VBA有三种数据库访问的接口,分别为ODBC(Open Database Con-nectivity)开放式数据库连接,DAO(Data Access Objects)数据访问对象。
2)ADO对象结构见图3。
图3 ACCESS ADO对象结构图
首先创建对象变量,然后用对象的方法和属性访问数据库。
用ADO访问数据库的一般语句和步骤:
3 ADO方式的数据库连接相通性
ASP和ACCESS通过调用ADO组件进行数据库连接,主要是写法上有不同。Access的Connection对象连接举例,以TestDB.mdb为例:
1)DSN方式
2)无DSN方式
3)基于OLE DB的连接
4 程序错误处理
4.1 ASP程序错误处理
使用ADO对象时发生的运行错误都收集在Errors集合中。Errors集合无须有Set语句创建,它由系统自动创建。如果没有错误,则它是一个空集合。如果非空,则其中每个成员是一个Error对象。
Errors集合只有一个属性,就是 Count,表示Errors集合中Error对象的个数。
Error集合的方法:Item方法,用于获取Error对象;Clear方法,用来清除Errors集合中的所有Error对象。
4.2 ACCESS程序错误处理
VBA提供了On Error语句,用来控制当有错误发生时程序的处理,启动一个错误处理程序并指定该子程序在一个过程中的位置。一个错误处理程序不是Sub过程或Function过程,它是一段用行号标记的代码。
On Error语句的语法,On Error语句的语法有三种:
1)On Error GoTo行号
启动错误处理程序,如果发生一个运行时错误,控件会转到行号所指位置,执行其中的代码。指定的行号必须在一个过程中,这个过程与 On Error语句所在的过程相同,当程序发生错误,跳转到指定的行号位置执行。
2)On Error Resume Next
当一个运行错误发生时,不考虑错误,继续执行下一条语句。访问对象时要使用这种形式而不使用On Error GoTo语句。
3)On Error GoTo 0
关闭错误处理,禁止当前过程中任何已启动的错误处理程序。
5 结语
本文讨论了如何在ASP、ACCESS中实现数据库的连接,如何实现数据库的读写。并介绍了在ASP中连接数据库的几种方法,基于ODBC DSN数据源的连接,无DSN的连接及数据库开发常用的Connection对象、Recordset对象,并对ACCESS可采用基于ODBC DSN数据源的连接,无DSN的连接等进行了举例,对比了ASP、ACCESS程序错误处理的方式。