介绍ADO的对象Connection

Download Report

Transcript 介绍ADO的对象Connection

十二 ADO对象模型
内容提要



本章介绍ADO的基本概念,以及如何在ASP程
序中使用ADO的对象。
介绍ADO的对象Connection、RecordSet和
Command的使用。
介绍如何利用SQL语句操作数据库。并介绍访
问数据库的基本格式。
访问数据库的通用方法



ODBC:Open DataBase Connection开放
数据库连接
OLE-DB:比ODBC速度快,更通用,但
有第三方编写,成本高
ADO:一组对象,比OLE-DB更高级,更
易用,优点是易于使用、高速度、低内
存支出和占用磁盘空间较少
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对象。
Connection对象

与数据库的所有通信都通过一个打开的
Connection对象进行。对一个数据库进行数据
的插入和读取之前,必须先打开数据库的连接
Connection对象的方法和属性
方法名称
说明
用法
Open()
建立连接
Conn.Open("数据库连接串")
Close()
关闭与数据库连接
Conn.Close()
Execute()
执行数据库查询
Conn.Execute(SQL语句或者表名)
BeginTrans()
开始事务处理
Conn.BeginTrans()
CommitTrans()
提交事务处理
Conn.CommitTrans()
RollbackTrans()
取消事务处理
Conn.RollbackTRans()
Connection对象的属性
属性名称
说明
用法
CommandTimeout
Execute方法最长执行时间
默认值为30秒钟,可以修改
ConnectionTimeout
Open方法最长执行时间
默认值为15秒,可以修改
ConnectionString
数据库的连接串
可以将连接串赋值给该属性
Mode
用来设置操作权限
1为只读、2为只写、3为可读可写
Version
获取ADO的版本信息
Conn.Version
数据库连接方式


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的连接
Connection对象应用实例
示例主文件:OLympic.html
 首先创建Access数据库olympic.mdb
 在数据库中建立表games
 体育项目管理主文件:gl.asp
 主要功能:添加项目,删除项目,更新
项目
RecordSet对象


RecordSet对象表示的是来自基本表或命
令执行结果的记录全集,其结构与数据
表相同
利用RecordSet对象的属性和方法可以完
全操作一个数据库,理论上只要SQL语句
可以完成的操作
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()
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
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
数据库表的结构
RecordSet对象使用实例


示例1:读取数据表的全部内容
示例文件:rfields.asp
示例2:对象游标移动
示例文件:move.asp
打开类型的四个参数:




(1)adOpenFowardOnly:对应的数字是0(默认值),记录集
只能向前移动。这些参数对应的数字,都保存在系统文件
Adovbs.inc中。
(2)adOpenKeyset:对应的数字是1,记录集可以向前或向后移
动。如果另一个用户删除或改变一条记录,记录集中将反映这个
变化。但是,如果另一个用户添加一条新记录,新记录不会出现
在记录集中。
(3)adOpenDynamic:对应的数字是2,使用动态游标,可以在
记录集中向前或向后移动。其他用户造成的记录的任何变化都将
在记录集中有所反映。
(4)adOpenStatic。对应的数字是3,使用静态游标,可以在记
录集中向前或向后移动。但是,静态游标不会对其他用户造成的
记录变化有所反映。
Command对象
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对象
其中,前两种方法是利用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对象的属性和方法
属性
说明
用法
ActiveConnect
ion
指定Command用的连接
cmd. ActiveConnection = conn
CommandText
指定数据库查询信息
cmd. ActiveConnection =表名或
SQL
CommandType
数据查询的类型
cmd. CommandType =1, 2,4
CommandTim
eout
执行SQL语句的最长时间
默认为30秒
Prepared
是否预编译,可以加快速度
cmd.Parpared = True/ False
Command对象提供的方法
方法
说明
用法
Execute()
执行SQL语句、表名或者存储
过程
cmd.Execute()
CreatePara
meter()
创建Command对象的参数
cmd.CreateParameter()
使用Command对象

使用Command对象来执行SQL 语句,示
例:adocmd.asp。