21
十十 ADO 十十十十

十二 ADO 对象模型

Embed Size (px)

DESCRIPTION

十二 ADO 对象模型. 内容提要. 本章介绍 ADO 的基本概念,以及如何在 ASP 程序中使用 ADO 的对象。 介绍 ADO 的对象 Connection 、 RecordSet 和 Command 的使用。 介绍如何利用 SQL 语句操作数据库。并介绍访问数据库的基本格式。. 访问数据库的通用方法. ODBC : Open DataBase Connection 开放数据库连接 OLE-DB :比 ODBC 速度快,更通用,但有第三方编写,成本高 ADO :一组对象,比 OLE-DB 更高级,更易用,优点是易于使用、高速度、低内存支出和占用磁盘空间较少. - PowerPoint PPT Presentation

Citation preview

Page 1: 十二  ADO 对象模型

十二 ADO 对象模型

Page 2: 十二  ADO 对象模型

内容提要 本章介绍 ADO 的基本概念,以及如何在 ASP

程序中使用 ADO 的对象。

介 绍 ADO 的 对 象Connection 、 RecordSet 和Command 的使用。

介绍如何利用 SQL 语句操作数据库。并介绍访问数据库的基本格式。

Page 3: 十二  ADO 对象模型

访问数据库的通用方法 ODBC : Open DataBase

Connection 开放数据库连接 OLE-DB :比 ODBC 速度快,更通用,

但有第三方编写,成本高 ADO :一组对象,比 OLE-DB 更高级,

更易用,优点是易于使用、高速度、低内存支出和占用磁盘空间较少

Page 4: 十二  ADO 对象模型

ADO 组件 ADO 主要是由 Connection 、 Command 、 Parameter 、 RecordSet 、

Field 、 Property 和 Error 等七个对象与Fields 、 Properties 、 Parameters 和 Errors 等四个数据集合所组合而成,其功能概述如下:

Connection 对象:主要负责建立和关闭与后台数据库的连接。 Command 对象:主要负责执行 SQL 命令,访问后台数据库。 Parameter 对象和 Parameters 集合:负责为 Command 对象提供数

据和 SQL 命令参数。 RecordSet 对象:主要负责存放访问数据库后,返回的数据信息。 Field 对象和 Field 集合:负责提供对 RecordSet 对象中当前记录的各个

字段进行访问的功能。 Property 对象和 Properties 集合:负责记录有关属性信息,供

Connection 、 Command 、 RecordSet 和 Field 对象使用。 Error 对象和 Errors 集合:负责记录访问数据库时的错误信息。

比较常用的是 Connection 、 RecordSet 、 Field 和 Command 对象。

Page 5: 十二  ADO 对象模型

Connection 对象 与数据库的所有通信都通过一个打开的Connection对象进行。对一个数据库进行数据的插入和读取之前,必须先打开数据库的连接

Page 6: 十二  ADO 对象模型

Connection 对象的方法和属性

方法名称 说明 用法

Open() 建立连接 Conn.Open(" 数据库连接串 ")

Close() 关闭与数据库连接 Conn.Close()

Execute() 执行数据库查询 Conn.Execute(SQL 语句或者表名 )

BeginTrans() 开始事务处理 Conn.BeginTrans()

CommitTrans() 提交事务处理 Conn.CommitTrans()

RollbackTrans() 取消事务处理 Conn.RollbackTRans()

Page 7: 十二  ADO 对象模型

Connection 对象的属性 属性名称 说明 用法

CommandTimeout Execute 方法最长执行时间 默认值为 30 秒钟,可以修改

ConnectionTimeout Open 方法最长执行时间 默认值为 15 秒,可以修改

ConnectionString 数据库的连接串 可以将连接串赋值给该属性

Mode 用来设置操作权限 1 为只读、 2 为只写、 3 为可读可写

Version 获取 ADO 的版本信息 Conn.Version

Page 8: 十二  ADO 对象模型

数据库连接方式 OLE-DB 方式:需要设置 ADO 对象的

ConnectionString 属性 连接 MS Access 数据库实例如下:

set conn=Server.createobject("ADODB.Connection")

conn.connectionstring=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.Mappath("student.mdb")conn.open

' 建立与 student.mdb 的连接

Page 9: 十二  ADO 对象模型

Connection 对象应用实例示例主文件: OLympic.html 首先创建 Access 数据库 olympic.mdb 在数据库中建立表 games 体育项目管理主文件: gl.asp 主要功能:添加项目,删除项目,更新

项目

Page 10: 十二  ADO 对象模型

RecordSet 对象 RecordSet 对象表示的是来自基本表或

命令执行结果的记录全集,其结构与数据表相同

利用 RecordSet 对象的属性和方法可以完全操作一个数据库,理论上只要 SQL语句可以完成的操作

Page 11: 十二  ADO 对象模型

RecordSet 对象的方法 方法 说明 用法

Open() 打开记录集 rs.Open()

Close() 关闭记录集 rs.Close()

Requery 重新打开记录集 rs.Requery()

Move() 当前记录前后移动条数 rs.Move(4) 向后面移动 4 行

MoveFirst() 移动到第一条记录 rs.MoveFirst()

MoveNext() 移动到下一条记录 rs.MoveNext()

MovePrevious() 移动到记录集中的上一条记录 rs. MovePrevious()

MoveLast() 移动到记录集的最后一条记录 rs. MoveLast()

AddNew() 向记录集中添加一条新记录 rs.AddNew()

Delete() 从记录集中删除当前记录 rs. Delete()

Update() 保存对当前记录所做的修改 rs. Update()

UpdateBatch() 保存对一个或多个记录的修改 rs. UpdateBatch()

CancelBatch() 取消一批更新 rs. CancelBatch()

Page 12: 十二  ADO 对象模型

RecordSet 对象的属性 属性 说明 用法

ActiveConnection 当前记录集用的数据连接 rs. ActiveConnection = conn

RecordCounts 记录集的总数 rs.RecordCounts

BOF 记录集的开头 rs.BOF

EOF 记录集的结尾 rs.EOF

PageCount 返回记录集中的逻辑页数 rs.PageCount

PageSize 返回逻辑页中的记录个数 rs.PageSize 默认值是 10

AbsolutePage 指定当前的页 rs.AbsolutePage

AbsolutePosition 指定当前的记录 rs.AbsolutePosition

Page 13: 十二  ADO 对象模型

RecordSet 对象使用方法 建立数据库连接对象,并创建 RecordSet 对象,

然后使用 open 方法打开 RecordSet 对象' 建立连接

set conn=Server.createobject("ADODB.Connection") conn.connectionstring="Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=" & Server.Mappath("olympic.mdb")conn.open

' 创建 Recordset 对象set rs=Server.createobject("ADODB.Recordset")

sqlstr="select * from games" rs.open sqlstr,conn

Page 14: 十二  ADO 对象模型

数据库表的结构

Page 15: 十二  ADO 对象模型

RecordSet 对象使用实例 示例 1 :读取数据表的全部内容

示例文件: rfields.asp

示例 2 :对象游标移动示例文件: move.asp

Page 16: 十二  ADO 对象模型

打开类型的四个参数: ( 1 ) adOpenFowardOnly :对应的数字是 0 (默认值),记

录集只能向前移动。这些参数对应的数字,都保存在系统文件Adovbs.inc 中。

( 2 ) adOpenKeyset :对应的数字是 1 ,记录集可以向前或向后移动。如果另一个用户删除或改变一条记录,记录集中将反映这个变化。但是,如果另一个用户添加一条新记录,新记录不会出现在记录集中。

( 3 ) adOpenDynamic :对应的数字是 2 ,使用动态游标,可以在记录集中向前或向后移动。其他用户造成的记录的任何变化都将在记录集中有所反映。

( 4 ) adOpenStatic 。对应的数字是 3 ,使用静态游标,可以在记录集中向前或向后移动。但是,静态游标不会对其他用户造成的记录变化有所反映。

Page 17: 十二  ADO 对象模型

Connection 对象的主要功能是建立与数据库的连接, Recordset 对象的主要功能是建立数据库查询结果的记录集合, Command 对象的主要功能是向数据库传送 SQL 语句的执行请求。

不使用 Command 对象,我们一样可以轻松地向数据库传送 SQL 语句的执行请求,主要有以下几种方法: ( 1 )执行 SQL 的 Select 语句,实现数据查询,并将查询结果存到Recordset 对象中。

Set rs = Conn.Execute(Select 语句 )

( 2 )执行 SQL 的 Insert 、 Delete 或 Update 语句,实现数据操作。Conn.Execute SQL 的数据操作语句

( 3 )先建立 Recordset 对象,再执行 SQL 语句。Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open SQL 语句 ,Conn

Command 对象

Page 18: 十二  ADO 对象模型

其中,前两种方法是利用 Connection 对象来执行 SQL 语句,而第三种方法则是利用 Recordset 对象来执行 SQL 语句。显然,没有 Command 对象也一样可以执行 SQL 语句。 Command 对象在 SQL 语句的执行方面具有强大的功能,它不仅能够将一般的 SQL 语句送往数据库服务器,还能够传送带有参数的 SQL 语句,更重要的是还可以传送存储过程(在数据库端,预置的 SQL程序)。但当 Command 对象执行 SQL 的 Select 语句时,返回的 Recordset 对象记录指针只能向下移动,如果希望记录指针能够上下移动,那就必须使用 Recordset 对象的 Open 方法来打开数据表。

创建 Command 对象语法格式:Set Command 对象名 = Server.CreateObject ( "ADODB.

Command" )

Command 对象

Page 19: 十二  ADO 对象模型

Command 对象的属性和方法 属性 说明 用法

ActiveConnection

指定 Command 用的连接 cmd. ActiveConnection = conn

CommandText 指定数据库查询信息 cmd. ActiveConnection = 表名或SQL

CommandType 数据查询的类型 cmd. CommandType =1, 2,4

CommandTimeout

执行 SQL 语句的最长时间 默认为 30 秒

Prepared 是否预编译,可以加快速度 cmd.Parpared = True/ False

Page 20: 十二  ADO 对象模型

Command 对象提供的方法 方法 说明 用法

Execute() 执行 SQL 语句、表名或者存储过程

cmd.Execute()

CreateParameter()

创建 Command 对象的参数 cmd.CreateParameter()

Page 21: 十二  ADO 对象模型

使用 Command 对象 使用 Command 对象来执行 SQL 语句,

示例: adocmd.asp 。