《使用ADO访问数据库.ppt》由会员分享,可在线阅读,更多相关《使用ADO访问数据库.ppt(85页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第13章 使用ADO 访问数据库 13.1 ASP 与ADO 13.2 建 立 连 接 13.3 Recordset 对象13.4 Command 对象ASP 提供了强大的访问数据库的功能。用ASP 访问数据库所使用的是ADO(ActiveX Data Objects)组件。使用ADO 编写的ASP 程序,不仅能够访问Access 数据库,能够访问包括Oracle、MS SQL Server、Sybase 等支持OLE DB、ODBC 的数据库。13.1 ASP 与ADO 13.1.1 ASP 与数据库通过ADO 对象,ASP 可以访问Oracle、Sybase、MS SQL Server、A
2、ccess、FoxPro 等各种支持ODBC 或OLEDB 的数据库。也就是说,只要具有某种数据库的ODBC 或OLEDB 驱动程序,就可以通过ADO 访问数据库。ASP、ADO、OLE DB 及各种数据库之间的关系如图13-1 所示。13.1.2 ADO 的概念和结构ODBC(Open Database Connectivity)是微软公司开发的一套开放数据库应用程序的接口规范,是广泛使用的数据库接口。使用ODBC 开发数据库应用程序的方法是建立ODBC 数据源,通过ODBC 接口函数,提交SQL 语句并接收执行SQL 命令的结果。数据库的底层操作由各个数据库的驱动程序完成。OLE DB 是
3、以ActiveX 技术为基础的数据访问技术标准。OLE DB 基于组件模型;可以访问多种格式的数据,包括数据库的数据和非数据库的数据。OLE DB 标准的具体实现是一组API 函数。使用OLE DB API,可以编写能够访问符合OLE DB 标准的任何数据源应用程序。为了使各种流行的编程语言都能编写符合OLE DB 标准的应用程序,微软公司在OLE DB API 之上提供了一种面向对象的、与语言无关的应用程序编写接口,就是ADO。ADO 是一项数据库访问技术。ADO具有如下优点。对于程序设计者而言,ADO 很容易掌握和使用。ADO 能够被Visual Basic、Java、C+、VBScrip
4、t及Jscript 等程序设计语言所支持。ADO 能够访问各种支持OLE DB 的数据源,也就是说,通过ADO 能够访问具有OLE DB 驱动程序的数据源。ADO 允许C+的程序员访问OLE DB 的底层接口。ADO 包括7个对象及集合,其主要作用描述如下。(1)Connection 对象Connection 对象用于建立数据源与ADO 应用程序之间的连接。(2)Recordset 对象Recordset 对象是ADO 中最重要的对象之一,是对数据库进行检索后的数据记录集。这个记录集既可以是Command 对象返回的查询结果,也可以是直接运行SQL 命令产生的查询结果。Recordset 对象
5、把数据库检索的结果封装在一起,并通过它的方法和属性提供一种方便、快捷地访问每条记录、每个字段的方法。(3)Command 对象Command 对象用于定义数据库的查询动作,一般使用SQL 命令,也可以使用存储过程。Command 对象允许指定参数,其参数通过Parameter 对象赋值、使用。(4)Parameter 对象Parameter 对象的作用是将存储过程和参数查询所需的参数传递给Command对象。存储过程是SQL 语言的过程。一个Command 对象上的所有Parameter 对象构成Parameters 集合。(5)Field 对象Field 对象能够使我们读取记录集(Recor
6、dset)对象中各个字段的字段值。定义在一个Recordset 对象上的所有Field 对象构成Fields 集合。(6)Property 对象Property 对象能够指明一个ADO对象的属性。所有的Property 对象构成Properties 集合。这个集合与Connection、Command、Recordset 或Field 对象相关联。(7)Error 对象Error 对象的作用是返回一个数据库连接(Connection)上产生的错误。ADO 对象及集合的关系如图13-2所示。在ADO 的对象中,Connection、Command 和Recordset 三个对象是顶层对象,也是最
7、重要的对象。我们能够单独的创建、释放这三个对象。而其他对象,尽管可以单独创建对象,但是在使用之前,必须与有关的对象相关联。Field、Error和Property 对象在其双亲对象存在的情况下才存在,不能单独的创建这些对象。Connection 对象用于建立应用程序与数据库的连接。在这个基础之上,可以使用Command 对象和Recordset 对象对所连接的数据库进行各种操作。Command 对象用于定义数据库的查询操作,主要采用SQL 语言描述查询动作。Recordset 对象对应于Command 对象的返回结果。当然Recordset 对象也可以直接建立一个Recordset,即不显式地
8、为Recordset 创建Connection 或 Command 对象,但实际上通过Recordset 对象的一些参数设置了Connection 对象和Command 对象的属性。13.2 建 立 连 接 13.2.1 使用Connection 对象建立连接Connection 对象用于应用程序与服务器之间的连接。使用Connection 对象可以确定以何种方式建立与服务器的连接,设置查询条件,检查整个处理过程中发生的错误。1建立和关闭连接对象建立Connection 对象的方法如下。“Server.CreateObject”的含义是执行ASP 内置的Server 对象的CreateObje
9、ct 方法,创建一个“ADODB.Connection”对象。新创建的连接对象实例被赋值给对象变量“objCn”,即ObjCn 就是与数据库建立连接的对象变量。关闭Connection 对象的方法是:“Close”是Connection 对象的方法,其作用是关闭Connection 对象,将应用程序与数据库的连接断开。但objCn 仍在内存中,没有释放所占用的空间。释放对象变量的方法是:2与数据源建立连接建立连接对象,仅仅是创建了一个Connection 对象的实例,并没有真正地与一个数据库建立起连接。建立连接的操作通过Connection 对象的Open 方法实现。Connection 对象
10、的Open 方法的基本语法格式如下.Open ConnectionStringConnectionString 是连接参数,指明了连接的数据库类型、名称等。需要说明的是,建立连接等操作的成功与否,在浏览器上没有任何显示。不同类别的数据库,具有不同的驱动程序,相应的具有不同的连接参数和格式。13.2.2 Connection 对象的属性1CommandTimeOut 属性CommandTimeOut 属性用于设置等待时间。在使用Connection 对象的Execute 方法运行一个查询时,如果由于网络负担过重或其他原因造成在指定的CommandTimeOut时间内未能完成有关操作,则系统会自动
11、取消Execute 方法的执行。如果将CommandTimeOut 的属性值设为0,则系统无限期等待命令的执行。默认值为30秒。2ConnectionString 属性ConnectionString 属性指定了与数据库建立连接的参数,包括所连接的数据库类型、名称等。连接参数是由若干形如“参数=值;”的表达式连接而成。3ConnectionTimeOut 属性ConnectionTimeOut 属性用于设置执行Open 方法时的超时时间。当超过指定的ConnectionTimeOut 时间仍未完成连接操作,系统自动终止Open 方法的执行。如果设置ConnectionTimeOut 为0,则程
12、序一直等待Open 方法的执行,直到连接成功。ConnectionTimeOut 属性的默认值为15秒。4DefaultDatabase 属性DefaultDatabase 属性可以设置或返回Connection 对象的默认数据库。13.2.3 通过Connection 对象执行查询命令ADO 的Connection 对象的主要作用是建立数据库的连接。实际上,Connection 对象还可以直接执行查询命令。使用Connection 对象的Execute 方法能够执行指定的SQL 查询命令或由SQL 命令构成的文本。Execute 方法格式如下:.Execute CommandText,Rec
13、ordsetAffectd,Options其中的“CommandText”是包含表名的 SQL 语句。“RecordsetAffectd”是可选参数,若需要知道执行该命令所影响的记录数,可以在此放置一个变量,待命令执行完毕,检查该变量的值即可。“Options”是可选参数,用于指定CommandText 的类型,如存储过程、命令等。13.3 Recordset 对象从数据库中读取的数据记录通过Recordset 对象处理。使用Recordset 对象,可以对数据库中数据表的数据进行各种操作,如插入记录、删除记录、更新记录、检索数据等。Recordset 对象保存数据的方式类似于二维表,包括字段
14、和记录。13.3.1 建立Recordset 对象使用Recordset 对象时,需要声明一个Recordset 对象的实例,即创建一个Recordset 对象的对象变量。其语法格式如下:Set 对象变量=Server.CreateObject(“ADODB.Recordset”)以上命令的含义是建立一个ADODB.Recordset 类型的对象,并赋值给对象变量。对象变量建立后,可以使用Open 方法建立一个Recordset。Recordset对象的Open 方法的基本格式如下。.Open Source,ConnectionStringSource 是一个SQL 命令,也就是查询要求。Co
15、nnectionString 是连接参数。例如,从课程管理数据库中读取学生的基本信息,可以使用如下的命令。需要说明的是可以使用多种方式建立Recordset 对象。一种方式就是上面提到的直接使用Recordset 对象的Open 方法建立Recordset。另一种方法是首先建立一个Connection 对象,然后使Connection 对象与Recordset 对象建立关联,从而得到建立了连接的Recordset 对象。还有一种方法是通过Connection 对象的Execute 方法执行有关查询,产生Recordset 对象,还可以通过Command 对象建立Recordset 对象。13.3.2 使用Recordset 访问数据库从Recordset 对象中读取数据记录时需要使用“记录指针”。从数据库中读取数据、建立Recordset 后,有一个“记录指针”指向第一条记录。此时,可以读取这条记录中各个字段的数据,而且只能读取这条记录的数据。就是说,在同一个时刻只能读取当前记录中的数据,即记录指针所指向的记录。如果要读取其他记录的数据时,必须把“记录指针”移动到要访问的记录上。1读取数据例13.3 读取Recordset 中的字段。使用Recordset 读取数据