第 10章 ADO对象
10.1 ADO概述
10.2 Connection对象
10.3 Command对象
10.4 RecordSet对象
10.5 Fields数据集合和 Field对象
10.6 Properties数据集合和 Property对象
10.7 Parameters数据集合与 Parameter对象
10.8 Errors数据集合和 Error对象
10.1 ADO概述
Browser/Server(浏览器 /服务器)已经成为 MIS
( Management InFormation System 管理信息系统)的
主要模式。在 MIS系统中,对数据库的操作占有非常重
要的地位,ASP对数据库的访问可以通过 ADO模式来实现。
不过,ADO并不与数据资源直接通信,而是通过称为 OLE
DB(对象链接与嵌入式数据库)的中间界面。
目前有两种使用 ADO产生数据库连接的方法。一方面,
可以使用面向 ODBC驱动器的 OLE DB驱动程序产生一个连
接,这种连接与任何有 ODBC驱动器的数据库(即基本上
是市场上所有的数据库)兼容。另一方面,可以使用原
始 OLE DB驱动程序产生一个连接。
10.1 ADO概述
10.1.1 ADO的七个对象
( 1) Connection对象用于创建 ASP脚本和指定数据库
的连接。
( 2) Command对象负责对数据库提供请求,也就是传
递指定的 SQL命令。
( 3) Parameter对象负责传递 Command对象所需要的
SQL命令参数。
( 4) RecordSet对象负责浏览与操作从数据库中取得
的数据。
( 5) Field表示指定 RecordSet对象的数据字段。
( 6) Property对象表示 ADO的各项对象属性值。
( 7) Error对象负责记录连接过程中所有发生的错误
信息。
10.1 ADO概述
10.1.2 ADO的四个数据集合
( 1) Fields数据集合。
( 2) Properties数据集合。
( 3) Parameters数据集合。
( 4) Errors数据集合。
10.1 ADO概述
10.1.3 ADO对象与数据集合之间的关系
Co nnection 对象 Record s e 对象
Err or 对象
P aram ete r
对象
Co m m and 对象
F iel d 对象
Execute 操作方法
A cti veCon nect
属性
Err ors 数据
集合
A cti veCon nect
属性
P aram ete rs
数据集合
S our ce 属性
F iel ds 数据
对象
Execute 操作
方法
10.2 Connection对象
Connection对象负责与数据库实际的连接
动作,其他的对象都必须依赖于 Connection
对象的连接才能发挥其特有的功能。
在成功安装 ASP与 Web服务器后, 就可以使
用 ASP中 Server对象的 CreateObject方法来创
建 Connection对象, 语法如下:
Set Conn = Server.CreateObject
("ADODB.Connection")
10.2 Connection对象
10.2.1 Connection对象的方法
1,Open方法
Connection对象的 Open方法负责创建与数据源的连
接, 语法如下:
connection.Open ConnectionString,UserID,
Password
在对打开的 Connection对象的操作结束后,可使用
Close方法释放所有关联的系统资源。关闭对象并非
将它从内存中删除;可以更改它的属性设置并在以后
再次使用 Open方法时打开它。要将对象完全从内存中
删除,可将对象变量设置为 Nothing。
10.2 Connection对象
1)通过 ODBC连接。在利用 ODBC创建连接时,
由于设置不同,Connection参数的设置也有
所不同:
? 对于在, ODBC数据源控制面板, 中设置过
的数据源,该参数设置比较简单,可以使用
,DSN=数据源名称, 的格式。
? 对于没有在, ODBC数据源控制面板, 中设
置过的,可以采用指定 ODBC驱动程序设置
(称为 ODBC DSN LESS),在 Windows系统目
录下的 Odbc.ini文件中,可以找到相关的信
息。
10.2 Connection对象
( 2)通过 OLE DB连接。
strProvider = "Provider=sqloledb;Data
Source=zjf;Initial Catalog=txl;User ID=sa;
Password=; "
Provider指定用于连接的提供者的名称,SQL
Server使用 sqloledb。
Data Source指定数据库服务器的名称。
Initial Catalog指定要连接的数据库名称
User表示登录 SQL Server服务器的用户帐号。
Password表示登录 SQL Server服务器的用户密码。
10.2 Connection对象
2,Execute方法
对于没有返回结果的命令格式:
connection.Execute CommandText,
RecordsAffected,Options
对于有返回结果的命令格式:
Set recordSet = connection.Execute
(CommandText,RecordsAffected,Options)
该方法返回一个 RecordSet对象。
可以执行标准的 SQL语句命令,如 Select(查询提
取数据),Insert(插入数据),Delete(删除数
据),Update(更新数据),Create Table(创建
数据表)以及 Drop Table(删除数据表)等操作。
10.2 Connection对象
3,Close方法
使用 Close方法可关闭 Connection对象或
RecordSet对象以便释放所有关联的系统资源 。
关闭对象并非将它从内存中删除, 可以更改它
的属性设置并且在此后再次打开 。 要将对象从
内存中完 全删除, 可将对象变 量设置为
Nothing。 语法如下:
Connection.close
10.2 Connection对象
4,BeginTrans,CommitTrans和 RollbackTrans
这三种方法都和 Connection对象的事务管理有关。
其中 BeginTrans表示开始新事务; CommitTrans表
示保存任何更改并结束当前事务, 它也可能启动新事
务; RollbackTrans表示取消当前事务中所作的任何
更改并结束事务, 它也可能启动新事务 。 其语法如下:
level = connetion.BeginTrans()
connection.BeginTrans
connection.CommitTrans
connection.RollbackTrans
10.2 Connection对象
10.2.2 Connection对象的属性
1,ConnectionTimeout设置 Connection对象的
Open方法与数据库连接时的最长等待时间,
CommandTimeout属性是设置 Connection 对象的
Execute方法运行的最长执行时间 。
2,ConnectionString属性:用来设置 Connection
对象的数据库连接信息, 包括 Provider参数, Data
Source参数, User ID参数, Password参数及 File
Name参数等 。
3,Provider属性, 用来取得或设置 Connection
对象的提供者 ( 内定数据库管理程序的名称 ), 默
认值为 MSDASQL( Microsoft OLE Db Provider For
ODBC), 负责管理所有以 ODBC连接的数据库 。
10.2 Connection对象
4,Mode属性
该属性用来设置修改数据库的权限 。 语法如
下:
Connection.Mode = ModeValue
5,其他属性
DefaultDatabase属性, Attributes属性,
CursorLocation属性, IsolationLevel属性,
State属性, Version属性 。
10.2 Connection对象
10.2.3 Connection对象的数据集合
Connection对象提供 Errors和 Properties两
种数据集合 。 前者表示 Connection对象运行时
最近一次 的错误或警告信息, 后者表示
Connection对象所定义的相关属性 。
10.3 Command对象
Command对象是 ADO中专门负责对数据库执行
命令和操作的对象, 使用 Command对象可以查
询数据库并返回 RecordSet对象中的记录, 以
便执行大量操作或修改数据库结构 。 使用该对
象不仅能够对一般的数据库信息进行操作, 还
因为该对象可以有输入, 输出参数, 从而可以
完成对数据库存储过程的调用 。
10.3 Command对象
10.3.1 Command对象的属性
1,ActiveConnection属性,用来设定该
Command对象操作由哪一个 Connection对象指
定连接的数据库。该属性的语法格式:
Command,ActiveConnection=ActiveConnectionValue
2,CommandText属性,表示程序所要对数据库下
达的命令 。
Command.CommandText=CommandTextValue
3,CommandType属性,指示 Command对象的类型 。
Command.CommandType=CommandTypeValue
或
CommandTypeValue=Command.
CommandType
10.3 Command对象
4,CommandTimeout属性,设置 Command对象 Execute
方法的最长执行时间,
Command,CommandTimeout = Seconds
5,State属性,用来取得 Command对象的状态
Command,State = StateValue
6,Prepared属性,指示执行前是否保存命令的编译
版本 。
Command,Prepared = Boolan
或
Boolan = Command,Prepared
10.3 Command对象
10.3.2 Command对象的方法
1,CreateParamete方法
该方法可以创建新的 Parameter对象 。
Set parameter=command.CreateParameter
(Name,Type,Direction,Size,Value)
其中:参数 Name代表 Parameter对象名称; Type是长
整型值, 用 于 指 定 Parameter 对 象 数 据 类 型 ;
Direction是长整型值, 用于指示 Parameter所标明的
是输入参数, 输出参数还是既是输出又是输入参数, 或
该参数是否为存储过程返回的值; Size是长整型值, 用
于指定参数值最大长度 ( 以字符或字节数为单位 ) ;
Value用于指定 Parameter对象的值 。
10.3 Command对象
2,Execute方法
负责运行指定的 SQL命令或存储过程 。 语法如下:
有返回结果的语法:
Set recordSet= command.Execute
(RecordsAffected,Parameters,Options)
没有返回的的语法:
command.Execute RecordsAffected,
Parameters,Options
RecordsAffected为长整型, 其值是操作所影响的记录数,
仅应用于查询或存储过程操作; Parameters是用 SQL语句传送
的参数值 ( 用该参数传送时输出参数将不返回正确值 ) ;
Options为长整型值, 其数值是一个 CommandText的属性值 。
10.4 RecordSet对象
RecordSet对象表示的是来自数据表或命令
执行结果的记录集 。 该对象负责浏览和操作从
数据库中取出的数据, 该对象就像一个二维数
组, 数组的每一列表示数据库中的一个数据列,
而同时每个数据行包含多个字段, 每个数据字
段就表示一个 Field对象 。
10.4 RecordSet对象
10.4.1 RecordSet对象的方法
使用 Open方法可以打开代表数据表, 查询结果或者
以前保存的 RecordSet中记录的游标 ( 指向数据库数据
的位置, 即指针 ), 也就是说可以与数据库建立连接 。
语法如下:
recordSet.Open Source,ActiveConnection,
CursorType,LockType,Options
其中,Source用来指定数据源, 可以是 Command对象
名, SQL 语句, 表名, 存 储 过 程 调 用 名 ;
ActiveConnection用来指定与数据库的连接信息, 可
以是 Connection 对 象 名 或 字 符 串, 包含
ConnectionString参数;
10.4 RecordSet对象
CursorType:
常量 参数值 说明
AdOpenForwardO
nly
0 使用前向类型游标, 只能在记录集中向前移动
( 默认值 )
AdOpenKeySet 1 使用键集类型游标, 可以在记录集中向前或向
后移动 。 如果其他用户删除或改变了某条记录,
记录集中将反映这个变化 。 但是, 如果其他用
户添加了一条新记录, 新记录将不会出现在记
录集中AdOpenDynami
c
2 使用动态类型游标, 可以在记录集中向前或向
后移动 。 对于其他用户造成的任何记录的变化
都将在记录集中有所反映
AdOpenStatic 3 使用静态类型游标, 可以在记录集中向前或向
后移动 。 不会对其他用户造成的任何记录的变
化有所反映
10.4 RecordSet对象
LockType:
常量 参数
值
说明
AdLockReadOnl
y
0 只读 。 不能改变数据 ( 默认值 ) 。
AdLockPessimi
stic
1 保守式锁定 ( 逐个 ) 。 指定在编辑一个
记录时立即锁定它 。
AdLockOptimis
tic
2 开放式锁定 ( 逐个 ) 。 数据库使用开放
式锁定, 只在调用 Update方法时才锁定
记录
AdLockBatchO
ptimistic
3 开放式批更新 。 用于批更新模式 。
10.4 RecordSet对象
Options:
常量 参数值 说明
AdCmdUnknown -1 指示 Source参数中的命令类型为未
知
AdCmdText 1 指示被执行的字符串包含一个命令
文本
AdCmdTable 2 指示被执行的字符串包含一个表的
名字
AdCmdStoredProc 3 指示被执行的字符串包含一个存储
过程名
10.4 RecordSet对象
2,Close方法
Close方法用来关闭所指定的 RecordSet对象,
语法如下:
RecordSet.Close
10.4 RecordSet对象
3,MoveFirst,MoveLast,MoveNext,MovePrevious,
Move方法
这些方法都是用来移动记录指针的, 通过使用这些
方法可以根据实际情况方便地将记录指针移动到所要
的位置 。
? MoveFirst:将指针移动到 RecordSet对象的第一
条记录 。
? MoveLast:将指针移动到最后一条数据记录 。
? MoveNext:将指针移动到下一条数据记录 。
? MovePrevious:将指针移动到上一条数据记录 。
? Move:将指针移动到指定位置 。
10.4 RecordSet对象
4,Update,CancelUpdate,CancelBatch,UpdateBatch
这些方法是用来更新或取消更新的 。
? Update:用于将 RecordSet对象中当前记录
的修改保存到数据库中 。
? CancelUpdate:取消在调用 Update方法前所
做的修改 。
? UpdateBatch:进行批次模式的更新数据操
作 。
? CancelBatch:允许取消批次模式的更新数
据操作 。
10.4 RecordSet对象
5,AddNew,Delete方法
AddNew方法用来向数据库中插入一条新记录;
Delete方法用于从数据库中删除指定的记录 。 语法:
RecordSet.AddNew
RecordSet.Delete
10.4 RecordSet对象
6,NextRecordSet方法
NextRecordSet方法允许清除当前 RecordSet对象,
并通过提前执行命令序列返回下一个记录集, 通常应
用于多重数据查询 。 语法如下:
Set recordSet2 = recordSet1.
NextRecordSet(RecordsAffected)
参数 recordSet2是返回的 RecordSet对象 。 在语法
模型中, recordSet1和 recordSet2可以是相同的
RecordSet对象, 也可以使用不同的对象 。
参数 RecordsAffected为长整型变量, 是数据库服
务器返回的每次操作所得到的记录数目 。
10.4 RecordSet对象
7,Requery方法
Requery方法用于重新运行第一次创建的
RecordSet命令或声明, 所有已存在 RecordSet
对象内的数据都会在执行 Requery方法后被重新
更新 。 调用该方法等于相继调用 Close和 Open方
法 。 语法如下:
recordSet.Requery Options
Options指定影响该操作选项的位屏蔽参数 。
10.4 RecordSet对象
8,Clone方法
Clone方法可以创建出多个 RecordSet对象副本, 这
些完全相同的 RecordSet对象是共享数据服务器的内
部快照数据, 也就是说内容相同 。 语法如下:
Set NewRecordSet=RecordSet.clone(LockType)
其中 LockType用于指定原始 RecordSet的锁定类型
或只读 RecordSet。
10.4 RecordSet对象
9,GetRows方法
GetRows方法可以取得多条记录 。
语法如下:
Array=recordSet.GetRows(Rows,Start,Fields)
Rows:用于指定要检索的记录数 。
Start:指定被取回到数组的数据记录的起始行,
默认值为当前记录 。
Fields用于指定被取回到数组的数据字段, 可以
是单一的字段名称, 数字索引或多个字段构成的数
组, 默认值为取回所有字段的数据 。
10.4 RecordSet对象
10,其他方法
其他方法, 如 Resync用来设置与数据库服务器同
步 的 更 新 模 式 ; Supports 方 法 可 以 用 来 判 别
RecordSet对象支持的功能 。 语法如下:
RecordSet.Resync AffectRecords
Boolean value= RecordSet.Supports
(CursorOptions)
Resync方法的参数 AffectRecords表示进行数据更
新的条件; Supports方法的参数 CursorOptions表示
可支持的功能 。
10.4 RecordSet对象
10.4.2 RecordSet对象的属性
1,ActiveConnection属性,用于指定 Connection
对象名称或是一串包含“数据库连接信息
( ConnectString)”的字符串,方便 RecordSet对象
完成数据库连接的前置动作。语法如下:
RecordSet,ActiveConnection=ActiveConnectionValue
2,Source属性
Source属性用于设置或返回一个字符串, 指定记录
集中数据的来源 。 包含存储过程名, 表名, SQL语句
或为 RecordSet提供记录集合的 Command对象 。 语法如
下,RecordSet,Source = Source
10.4 RecordSet对象
3,CursorLocation,Bookmark属性
CursorLocation属性用来设置指针处理的位置,
语法,RecordSet,CursorLocation
=CursorLocationType
Bookmark属性可以记录当前数据指针位置 。 当创
建一个允许使用 Bookmark属性的 RecordSet对象时,
可以利用 Bookmark快速定位记录 。 步骤如下:
先移动到那条记录, 利用 Bookmark属性设置一个
名称, 即书签记号的名称, 当要回到该条记录时,
将 Bookmark属性重新设为所设定书签记号的名称即
可 。
10.4 RecordSet对象
4,CursorType属性
CursorType属性指示在 RecordSet对象中使用的
游标类型, 其取值见表 11-6。 语法如下:
RecordSet,CurSorType=
CurSorTypeValue
5,LockType属性
LockType属性可指定打开 RecordSet对象时服务
器应该使用的锁定类型, 读取该属性可返回在打开
的 RecordSet对象上正在使用的锁定类型 。 可以设置
或返回表 11-7的值 。 语法如下:
RecordSet,LockType = LockTypeValue
10.4 RecordSet对象
6,RecordCount,MaxRecords,CacheSize属性
RecordCount属性可确定 RecordSet 对象中记录
的数目, 当 ADO无法确定记录数时, 或者 DBMS或游标
类型不支持 RecordCount,则该属性返回 -1。 语法:
LongInt = RecordSet,RecordCount
前向游标打开的记录集不能使用 RecordCount属性 。
7,BOF,EOF属性
BOF( Begin Of File) 属性用来判断当前记录位
置是否位于 RecordSet对象的第一个记录之前 。 EOF
( End Of File) 用来判断当前记录位置是否位于
RecordSet对象的最后一个记录之后 。
10.4 RecordSet对象
8,PageSize,PageCount,AbsolutePage,
AbsolutePosition属性
?PageSize属性用来设置 RecordSet对象内每一
个逻辑页的记录条数 。
?PageCount用来返回 RecordSet对象的逻辑页
数 。
?AbsolutePage属性用来取得当前数据游标在
RecordSet对象中的绝对页数 。
?AbsolutePosition属性用来取得当前游标在
RecordSet对象记录的绝对位置 。
10.4 RecordSet对象
9,EditMode属性
EditMode属性用于指示当前记录的编辑状态 。 语
法如下:
Int = RecordSet,EditMode
10,Filter属性
Filter属性用来控制 RecordSet对象的数据显示
方式, 即指定筛选条件 。 语法如下:
RecordSet,Filter = FilterVariant
或
FilterVariant = RecordSet,Filter
10.4 RecordSet对象
10.State,Status属性
State属性与 Connection对象的 State属性类似,
不同之处在于 RecordSet对象的 State属性是用来取
得 RecordSet对象的状态, 而 Connection对象的
State属性是取得 Connection对象的状态 。 语法如
下:
RecordSet,State = StateValue
Status属性用来表示当前记录的处理状态 。 使用
Status属性可以查看与批量更新或其他大量操作时
的 RecordSet对象的当前状态 。 语法如下:
RecordSet,Status = StatusValue
10.4 RecordSet对象
10.4.3 RecordSet对象数据集合
RecordSet对象的数据集合包括 Fields数据集合
和 Properties数据集合 。 Fields数据集合中包括
RecordSet 对 象 的 所 有 Field 数 据 字 段 对 象 ;
Properties数据集合包含 RecordSet对象的所有属
性 。
10.5 Fields数据集合和 Field对象
每个 Field对象对应于 RecordSet中的一列,
由多个 Field对象可以构成 Fields数据集合 。
使用 Field对象的 Value属性可设置或取得当
前记录的数据 。
10.5 Fields数据集合和 Field对象
10.5.1 Fields数据集合
Fields数据集合提供的方法和属性包括 Count属
性 ( 用来取得 Fields数据集合中所包含的 Field对象
的数目 。 ), Refresh方法 ( 用于刷新记录, 可以重
新取得 Fields数据集合中所包含的 Field对象 。 ) 和
Item方法 ( 用于利用 Field对象的索引值 ( Index)
得到某一个 Field对象, 这个索引值通常介于 0到
Count属性值 -1之间 。 ) 。
10.5 Fields数据集合和 Field对象
语法如下:
Set Fields = RecordSet.Field
LongInt = Fields.count
Fields.Refresh
Set Field = Fields.Item(Index)
或
Set Field = Fields(Index)
10.5 Fields数据集合和 Field对象
10.5.2 Field对象的属性
Field对象包括 Name,Value,Type,Attribute,
NumericScale, Precision, ActualSize,
DefinedSize, OriginalValue 和 UnderlyingValue
等属性 。
10.5 Fields数据集合和 Field对象
语法如下:
String = Field.Name
Variant = Field.Value
DataType = Field.Type
LongInt = Filed.Attributes
Byte = Field.NumericScale
Byte = Field.Precision
Long = Field.ActualSize
Long = Field.DefinedSize
Variant = Field.DefinedSize
Variant = Field.OriginalValue
Variant = Field.UnderlyingValue
10.5 Fields数据集合和 Field对象
10.5.3 Field对象的方法
Field对象的方法包括 AppendChunk,GetChunk等
方法, 用来专门处理 text,image等数据类型的, 其
中,AppendChunk方法用于将数据写到数据库中;
GetChunk方法用于将数据从数据库中取出 。 语法如
下:
Field.AppendChunk data
Variant = field.GetChunk(size)
10.6 Properties数据集合和 Property对象
一个 ADO对象通常拥有多个属性可供使用, 而每
一个属性都是独立的 Property对象, 它们中的一些
拥有自己的名称, 值, 数据类型和属性, 为了方便
地控制 ADO,把这些具有相同父对象的属性集合于
Properties数据集合中 。
语法如下:
Set properties = ADO对象,Properties
10.6 Properties数据集合和 Property对象
10.6.1 Properties数据集合
Properties数据集合是包含特定对象实例的所有
Property对象, 有时候也称为 Properties数据集合
对象 。 包括 Count属性, Refresh方法和 Item方法等 。
Count属性用来取得 Properties集合中包含的
Property对象个数 。
Refresh方法用来重新取得 Properties数据集合
中所有的 Property对象 。
Item方法 用来 取得 Properties集合 中的 某个
Property对象 。
10.6 Properties数据集合和 Property对象
语法如下:
LongInt = Properties.count
Properties.Refresh
Set Property =
Properties.Item(Index)
或
Set Property = Properties(Index)
10.6 Properties数据集合和 Property对象
10.6.2 Property对象
Property对象主要是用来记录相应 ADO对象的每
一项属性值, 包括 Name, Value, Type 和
Attributes等属性 。
Name属性表示对象属性的名称 。
Value属性表示对象的属性值 。
Type属性表示对象属性的数据类型 。
Attributes属性表示对象的特性 。
10.7 Parameters数据集合与 Parameter对象
Parameters数据集合是 Command对象所有
Parameter对象的集合 。
Parameter对象是代表与参数化查询或存储
过程的 Command对象相关联的参数或自变量 。
10.7 Parameters数据集合与 Parameter对象
10.7.1 Parameters数据集合
在 Parameters集合包括:
Count属性用于确定给定集合中的 Parameters对
象的数目 。
Append 方 法 用 于 将 Parameter 对 象 追 加 到
Parameters集合中 。
Delete 方法用于从 Parameters 集合中删除
Parameter对象 。
Item方 法 可 以 根 据 名 称 或 序 号 返 回 集 合 的
Parameter对象, 序号是从 0到 Count-1。
Refresh 方 法 用 于 更 新 Parameters 集 合 中 的
Parameter对象 。
10.7 Parameters数据集合与 Parameter对象
语法如下:
LongInt = Parameters.Count
Parameters.Append Parameter
Parameters.Delete Index
Parameters.Refresh
Set Parameter = Parameters.(Index)
或
Set Parameter =
Parameters.item(index)
10.7 Parameters数据集合与 Parameter对象
10.7.2 Parameter对象
Parameter对象负责记录程序中要传递参数的相
关属性 。 Parameter对象提供了:
Name属性表示对象属性的名称 。
Value属性表示参数的设置初值 。
Type属性表示对象属性的数据类型 。
Attribute属性表示对象的特性 。
10.8 Errors数据集合和 Error对象
如果是通过直接建立 Connection对象来使用, 可
以通过 Connection对象 的 Errors数据 集合 取 得
Error对象 。 如果首先创建 了 RecordSet对象或
Command对象, 然后通过 ActiveConnection属性来
使用 Connection对象, 则必须通过 RecordSet对象
或 Command对象的 ActiveConnection属性来取得
Error对象 。
语法如下:
Set Err = Connection.Errors
Set Err=
RecordSet.ActiveConnection.Errors
Set Err = Command.ActiveConnection.Errors
10.8 Errors数据集合和 Error对象
10.8.1 Errors数据集合
Errors数据集合, 也称 Errors数据集合对象, 包
含在响应涉及提供者的单个失败时产生的所有 Error
对象 。 包括:
Count属性可以用来取得 Errors数据集合中所包
含的 Error对象个数 。
Clear方法用来清除 Errors数据集合中的 Error对
象 。
Item方法可以用来取得 Errors数据集合中的
Error对象 。
10.8 Errors数据集合和 Error对象
语法如下:
LongInt = Errors.Count
Errors.clear
Set Err = Errors.Item(Index)
或
Set Err = Errors(Index)
10.8 Errors数据集合和 Error对象
10.8.2 Error对象
Error对象提供了 Description,Number,Source,
NativeErro,SQLState,HelpContext和 HelpFile
等属性 。
? Description属性用来记录错误或警告发生的原
因或描述 。
? Number属性用来表示所发生的错误或警告代码,
在 ADO常数声明文件 adovbs.inc中定义了常用的常
数, 可以用来参考 。
10.8 Errors数据集合和 Error对象
? Source属性用来记录造成系统发生错误或警告的
来源 。
? NativeError属性用来表示所发生的错误或警告
代码, 与 Number属 性 的 不 同 之 处 在 于 这 里 指
provider缺省的错误代码 。
? SQLState属性表示最后一次的 SQL命令运行状态 。
? HelpContext属性表示错误或警告的解决方法说
明和主题 。
? HelpFile属性表示错误或警告的解决方法的说明
文件和主题 。
10.1 ADO概述
10.2 Connection对象
10.3 Command对象
10.4 RecordSet对象
10.5 Fields数据集合和 Field对象
10.6 Properties数据集合和 Property对象
10.7 Parameters数据集合与 Parameter对象
10.8 Errors数据集合和 Error对象
10.1 ADO概述
Browser/Server(浏览器 /服务器)已经成为 MIS
( Management InFormation System 管理信息系统)的
主要模式。在 MIS系统中,对数据库的操作占有非常重
要的地位,ASP对数据库的访问可以通过 ADO模式来实现。
不过,ADO并不与数据资源直接通信,而是通过称为 OLE
DB(对象链接与嵌入式数据库)的中间界面。
目前有两种使用 ADO产生数据库连接的方法。一方面,
可以使用面向 ODBC驱动器的 OLE DB驱动程序产生一个连
接,这种连接与任何有 ODBC驱动器的数据库(即基本上
是市场上所有的数据库)兼容。另一方面,可以使用原
始 OLE DB驱动程序产生一个连接。
10.1 ADO概述
10.1.1 ADO的七个对象
( 1) Connection对象用于创建 ASP脚本和指定数据库
的连接。
( 2) Command对象负责对数据库提供请求,也就是传
递指定的 SQL命令。
( 3) Parameter对象负责传递 Command对象所需要的
SQL命令参数。
( 4) RecordSet对象负责浏览与操作从数据库中取得
的数据。
( 5) Field表示指定 RecordSet对象的数据字段。
( 6) Property对象表示 ADO的各项对象属性值。
( 7) Error对象负责记录连接过程中所有发生的错误
信息。
10.1 ADO概述
10.1.2 ADO的四个数据集合
( 1) Fields数据集合。
( 2) Properties数据集合。
( 3) Parameters数据集合。
( 4) Errors数据集合。
10.1 ADO概述
10.1.3 ADO对象与数据集合之间的关系
Co nnection 对象 Record s e 对象
Err or 对象
P aram ete r
对象
Co m m and 对象
F iel d 对象
Execute 操作方法
A cti veCon nect
属性
Err ors 数据
集合
A cti veCon nect
属性
P aram ete rs
数据集合
S our ce 属性
F iel ds 数据
对象
Execute 操作
方法
10.2 Connection对象
Connection对象负责与数据库实际的连接
动作,其他的对象都必须依赖于 Connection
对象的连接才能发挥其特有的功能。
在成功安装 ASP与 Web服务器后, 就可以使
用 ASP中 Server对象的 CreateObject方法来创
建 Connection对象, 语法如下:
Set Conn = Server.CreateObject
("ADODB.Connection")
10.2 Connection对象
10.2.1 Connection对象的方法
1,Open方法
Connection对象的 Open方法负责创建与数据源的连
接, 语法如下:
connection.Open ConnectionString,UserID,
Password
在对打开的 Connection对象的操作结束后,可使用
Close方法释放所有关联的系统资源。关闭对象并非
将它从内存中删除;可以更改它的属性设置并在以后
再次使用 Open方法时打开它。要将对象完全从内存中
删除,可将对象变量设置为 Nothing。
10.2 Connection对象
1)通过 ODBC连接。在利用 ODBC创建连接时,
由于设置不同,Connection参数的设置也有
所不同:
? 对于在, ODBC数据源控制面板, 中设置过
的数据源,该参数设置比较简单,可以使用
,DSN=数据源名称, 的格式。
? 对于没有在, ODBC数据源控制面板, 中设
置过的,可以采用指定 ODBC驱动程序设置
(称为 ODBC DSN LESS),在 Windows系统目
录下的 Odbc.ini文件中,可以找到相关的信
息。
10.2 Connection对象
( 2)通过 OLE DB连接。
strProvider = "Provider=sqloledb;Data
Source=zjf;Initial Catalog=txl;User ID=sa;
Password=; "
Provider指定用于连接的提供者的名称,SQL
Server使用 sqloledb。
Data Source指定数据库服务器的名称。
Initial Catalog指定要连接的数据库名称
User表示登录 SQL Server服务器的用户帐号。
Password表示登录 SQL Server服务器的用户密码。
10.2 Connection对象
2,Execute方法
对于没有返回结果的命令格式:
connection.Execute CommandText,
RecordsAffected,Options
对于有返回结果的命令格式:
Set recordSet = connection.Execute
(CommandText,RecordsAffected,Options)
该方法返回一个 RecordSet对象。
可以执行标准的 SQL语句命令,如 Select(查询提
取数据),Insert(插入数据),Delete(删除数
据),Update(更新数据),Create Table(创建
数据表)以及 Drop Table(删除数据表)等操作。
10.2 Connection对象
3,Close方法
使用 Close方法可关闭 Connection对象或
RecordSet对象以便释放所有关联的系统资源 。
关闭对象并非将它从内存中删除, 可以更改它
的属性设置并且在此后再次打开 。 要将对象从
内存中完 全删除, 可将对象变 量设置为
Nothing。 语法如下:
Connection.close
10.2 Connection对象
4,BeginTrans,CommitTrans和 RollbackTrans
这三种方法都和 Connection对象的事务管理有关。
其中 BeginTrans表示开始新事务; CommitTrans表
示保存任何更改并结束当前事务, 它也可能启动新事
务; RollbackTrans表示取消当前事务中所作的任何
更改并结束事务, 它也可能启动新事务 。 其语法如下:
level = connetion.BeginTrans()
connection.BeginTrans
connection.CommitTrans
connection.RollbackTrans
10.2 Connection对象
10.2.2 Connection对象的属性
1,ConnectionTimeout设置 Connection对象的
Open方法与数据库连接时的最长等待时间,
CommandTimeout属性是设置 Connection 对象的
Execute方法运行的最长执行时间 。
2,ConnectionString属性:用来设置 Connection
对象的数据库连接信息, 包括 Provider参数, Data
Source参数, User ID参数, Password参数及 File
Name参数等 。
3,Provider属性, 用来取得或设置 Connection
对象的提供者 ( 内定数据库管理程序的名称 ), 默
认值为 MSDASQL( Microsoft OLE Db Provider For
ODBC), 负责管理所有以 ODBC连接的数据库 。
10.2 Connection对象
4,Mode属性
该属性用来设置修改数据库的权限 。 语法如
下:
Connection.Mode = ModeValue
5,其他属性
DefaultDatabase属性, Attributes属性,
CursorLocation属性, IsolationLevel属性,
State属性, Version属性 。
10.2 Connection对象
10.2.3 Connection对象的数据集合
Connection对象提供 Errors和 Properties两
种数据集合 。 前者表示 Connection对象运行时
最近一次 的错误或警告信息, 后者表示
Connection对象所定义的相关属性 。
10.3 Command对象
Command对象是 ADO中专门负责对数据库执行
命令和操作的对象, 使用 Command对象可以查
询数据库并返回 RecordSet对象中的记录, 以
便执行大量操作或修改数据库结构 。 使用该对
象不仅能够对一般的数据库信息进行操作, 还
因为该对象可以有输入, 输出参数, 从而可以
完成对数据库存储过程的调用 。
10.3 Command对象
10.3.1 Command对象的属性
1,ActiveConnection属性,用来设定该
Command对象操作由哪一个 Connection对象指
定连接的数据库。该属性的语法格式:
Command,ActiveConnection=ActiveConnectionValue
2,CommandText属性,表示程序所要对数据库下
达的命令 。
Command.CommandText=CommandTextValue
3,CommandType属性,指示 Command对象的类型 。
Command.CommandType=CommandTypeValue
或
CommandTypeValue=Command.
CommandType
10.3 Command对象
4,CommandTimeout属性,设置 Command对象 Execute
方法的最长执行时间,
Command,CommandTimeout = Seconds
5,State属性,用来取得 Command对象的状态
Command,State = StateValue
6,Prepared属性,指示执行前是否保存命令的编译
版本 。
Command,Prepared = Boolan
或
Boolan = Command,Prepared
10.3 Command对象
10.3.2 Command对象的方法
1,CreateParamete方法
该方法可以创建新的 Parameter对象 。
Set parameter=command.CreateParameter
(Name,Type,Direction,Size,Value)
其中:参数 Name代表 Parameter对象名称; Type是长
整型值, 用 于 指 定 Parameter 对 象 数 据 类 型 ;
Direction是长整型值, 用于指示 Parameter所标明的
是输入参数, 输出参数还是既是输出又是输入参数, 或
该参数是否为存储过程返回的值; Size是长整型值, 用
于指定参数值最大长度 ( 以字符或字节数为单位 ) ;
Value用于指定 Parameter对象的值 。
10.3 Command对象
2,Execute方法
负责运行指定的 SQL命令或存储过程 。 语法如下:
有返回结果的语法:
Set recordSet= command.Execute
(RecordsAffected,Parameters,Options)
没有返回的的语法:
command.Execute RecordsAffected,
Parameters,Options
RecordsAffected为长整型, 其值是操作所影响的记录数,
仅应用于查询或存储过程操作; Parameters是用 SQL语句传送
的参数值 ( 用该参数传送时输出参数将不返回正确值 ) ;
Options为长整型值, 其数值是一个 CommandText的属性值 。
10.4 RecordSet对象
RecordSet对象表示的是来自数据表或命令
执行结果的记录集 。 该对象负责浏览和操作从
数据库中取出的数据, 该对象就像一个二维数
组, 数组的每一列表示数据库中的一个数据列,
而同时每个数据行包含多个字段, 每个数据字
段就表示一个 Field对象 。
10.4 RecordSet对象
10.4.1 RecordSet对象的方法
使用 Open方法可以打开代表数据表, 查询结果或者
以前保存的 RecordSet中记录的游标 ( 指向数据库数据
的位置, 即指针 ), 也就是说可以与数据库建立连接 。
语法如下:
recordSet.Open Source,ActiveConnection,
CursorType,LockType,Options
其中,Source用来指定数据源, 可以是 Command对象
名, SQL 语句, 表名, 存 储 过 程 调 用 名 ;
ActiveConnection用来指定与数据库的连接信息, 可
以是 Connection 对 象 名 或 字 符 串, 包含
ConnectionString参数;
10.4 RecordSet对象
CursorType:
常量 参数值 说明
AdOpenForwardO
nly
0 使用前向类型游标, 只能在记录集中向前移动
( 默认值 )
AdOpenKeySet 1 使用键集类型游标, 可以在记录集中向前或向
后移动 。 如果其他用户删除或改变了某条记录,
记录集中将反映这个变化 。 但是, 如果其他用
户添加了一条新记录, 新记录将不会出现在记
录集中AdOpenDynami
c
2 使用动态类型游标, 可以在记录集中向前或向
后移动 。 对于其他用户造成的任何记录的变化
都将在记录集中有所反映
AdOpenStatic 3 使用静态类型游标, 可以在记录集中向前或向
后移动 。 不会对其他用户造成的任何记录的变
化有所反映
10.4 RecordSet对象
LockType:
常量 参数
值
说明
AdLockReadOnl
y
0 只读 。 不能改变数据 ( 默认值 ) 。
AdLockPessimi
stic
1 保守式锁定 ( 逐个 ) 。 指定在编辑一个
记录时立即锁定它 。
AdLockOptimis
tic
2 开放式锁定 ( 逐个 ) 。 数据库使用开放
式锁定, 只在调用 Update方法时才锁定
记录
AdLockBatchO
ptimistic
3 开放式批更新 。 用于批更新模式 。
10.4 RecordSet对象
Options:
常量 参数值 说明
AdCmdUnknown -1 指示 Source参数中的命令类型为未
知
AdCmdText 1 指示被执行的字符串包含一个命令
文本
AdCmdTable 2 指示被执行的字符串包含一个表的
名字
AdCmdStoredProc 3 指示被执行的字符串包含一个存储
过程名
10.4 RecordSet对象
2,Close方法
Close方法用来关闭所指定的 RecordSet对象,
语法如下:
RecordSet.Close
10.4 RecordSet对象
3,MoveFirst,MoveLast,MoveNext,MovePrevious,
Move方法
这些方法都是用来移动记录指针的, 通过使用这些
方法可以根据实际情况方便地将记录指针移动到所要
的位置 。
? MoveFirst:将指针移动到 RecordSet对象的第一
条记录 。
? MoveLast:将指针移动到最后一条数据记录 。
? MoveNext:将指针移动到下一条数据记录 。
? MovePrevious:将指针移动到上一条数据记录 。
? Move:将指针移动到指定位置 。
10.4 RecordSet对象
4,Update,CancelUpdate,CancelBatch,UpdateBatch
这些方法是用来更新或取消更新的 。
? Update:用于将 RecordSet对象中当前记录
的修改保存到数据库中 。
? CancelUpdate:取消在调用 Update方法前所
做的修改 。
? UpdateBatch:进行批次模式的更新数据操
作 。
? CancelBatch:允许取消批次模式的更新数
据操作 。
10.4 RecordSet对象
5,AddNew,Delete方法
AddNew方法用来向数据库中插入一条新记录;
Delete方法用于从数据库中删除指定的记录 。 语法:
RecordSet.AddNew
RecordSet.Delete
10.4 RecordSet对象
6,NextRecordSet方法
NextRecordSet方法允许清除当前 RecordSet对象,
并通过提前执行命令序列返回下一个记录集, 通常应
用于多重数据查询 。 语法如下:
Set recordSet2 = recordSet1.
NextRecordSet(RecordsAffected)
参数 recordSet2是返回的 RecordSet对象 。 在语法
模型中, recordSet1和 recordSet2可以是相同的
RecordSet对象, 也可以使用不同的对象 。
参数 RecordsAffected为长整型变量, 是数据库服
务器返回的每次操作所得到的记录数目 。
10.4 RecordSet对象
7,Requery方法
Requery方法用于重新运行第一次创建的
RecordSet命令或声明, 所有已存在 RecordSet
对象内的数据都会在执行 Requery方法后被重新
更新 。 调用该方法等于相继调用 Close和 Open方
法 。 语法如下:
recordSet.Requery Options
Options指定影响该操作选项的位屏蔽参数 。
10.4 RecordSet对象
8,Clone方法
Clone方法可以创建出多个 RecordSet对象副本, 这
些完全相同的 RecordSet对象是共享数据服务器的内
部快照数据, 也就是说内容相同 。 语法如下:
Set NewRecordSet=RecordSet.clone(LockType)
其中 LockType用于指定原始 RecordSet的锁定类型
或只读 RecordSet。
10.4 RecordSet对象
9,GetRows方法
GetRows方法可以取得多条记录 。
语法如下:
Array=recordSet.GetRows(Rows,Start,Fields)
Rows:用于指定要检索的记录数 。
Start:指定被取回到数组的数据记录的起始行,
默认值为当前记录 。
Fields用于指定被取回到数组的数据字段, 可以
是单一的字段名称, 数字索引或多个字段构成的数
组, 默认值为取回所有字段的数据 。
10.4 RecordSet对象
10,其他方法
其他方法, 如 Resync用来设置与数据库服务器同
步 的 更 新 模 式 ; Supports 方 法 可 以 用 来 判 别
RecordSet对象支持的功能 。 语法如下:
RecordSet.Resync AffectRecords
Boolean value= RecordSet.Supports
(CursorOptions)
Resync方法的参数 AffectRecords表示进行数据更
新的条件; Supports方法的参数 CursorOptions表示
可支持的功能 。
10.4 RecordSet对象
10.4.2 RecordSet对象的属性
1,ActiveConnection属性,用于指定 Connection
对象名称或是一串包含“数据库连接信息
( ConnectString)”的字符串,方便 RecordSet对象
完成数据库连接的前置动作。语法如下:
RecordSet,ActiveConnection=ActiveConnectionValue
2,Source属性
Source属性用于设置或返回一个字符串, 指定记录
集中数据的来源 。 包含存储过程名, 表名, SQL语句
或为 RecordSet提供记录集合的 Command对象 。 语法如
下,RecordSet,Source = Source
10.4 RecordSet对象
3,CursorLocation,Bookmark属性
CursorLocation属性用来设置指针处理的位置,
语法,RecordSet,CursorLocation
=CursorLocationType
Bookmark属性可以记录当前数据指针位置 。 当创
建一个允许使用 Bookmark属性的 RecordSet对象时,
可以利用 Bookmark快速定位记录 。 步骤如下:
先移动到那条记录, 利用 Bookmark属性设置一个
名称, 即书签记号的名称, 当要回到该条记录时,
将 Bookmark属性重新设为所设定书签记号的名称即
可 。
10.4 RecordSet对象
4,CursorType属性
CursorType属性指示在 RecordSet对象中使用的
游标类型, 其取值见表 11-6。 语法如下:
RecordSet,CurSorType=
CurSorTypeValue
5,LockType属性
LockType属性可指定打开 RecordSet对象时服务
器应该使用的锁定类型, 读取该属性可返回在打开
的 RecordSet对象上正在使用的锁定类型 。 可以设置
或返回表 11-7的值 。 语法如下:
RecordSet,LockType = LockTypeValue
10.4 RecordSet对象
6,RecordCount,MaxRecords,CacheSize属性
RecordCount属性可确定 RecordSet 对象中记录
的数目, 当 ADO无法确定记录数时, 或者 DBMS或游标
类型不支持 RecordCount,则该属性返回 -1。 语法:
LongInt = RecordSet,RecordCount
前向游标打开的记录集不能使用 RecordCount属性 。
7,BOF,EOF属性
BOF( Begin Of File) 属性用来判断当前记录位
置是否位于 RecordSet对象的第一个记录之前 。 EOF
( End Of File) 用来判断当前记录位置是否位于
RecordSet对象的最后一个记录之后 。
10.4 RecordSet对象
8,PageSize,PageCount,AbsolutePage,
AbsolutePosition属性
?PageSize属性用来设置 RecordSet对象内每一
个逻辑页的记录条数 。
?PageCount用来返回 RecordSet对象的逻辑页
数 。
?AbsolutePage属性用来取得当前数据游标在
RecordSet对象中的绝对页数 。
?AbsolutePosition属性用来取得当前游标在
RecordSet对象记录的绝对位置 。
10.4 RecordSet对象
9,EditMode属性
EditMode属性用于指示当前记录的编辑状态 。 语
法如下:
Int = RecordSet,EditMode
10,Filter属性
Filter属性用来控制 RecordSet对象的数据显示
方式, 即指定筛选条件 。 语法如下:
RecordSet,Filter = FilterVariant
或
FilterVariant = RecordSet,Filter
10.4 RecordSet对象
10.State,Status属性
State属性与 Connection对象的 State属性类似,
不同之处在于 RecordSet对象的 State属性是用来取
得 RecordSet对象的状态, 而 Connection对象的
State属性是取得 Connection对象的状态 。 语法如
下:
RecordSet,State = StateValue
Status属性用来表示当前记录的处理状态 。 使用
Status属性可以查看与批量更新或其他大量操作时
的 RecordSet对象的当前状态 。 语法如下:
RecordSet,Status = StatusValue
10.4 RecordSet对象
10.4.3 RecordSet对象数据集合
RecordSet对象的数据集合包括 Fields数据集合
和 Properties数据集合 。 Fields数据集合中包括
RecordSet 对 象 的 所 有 Field 数 据 字 段 对 象 ;
Properties数据集合包含 RecordSet对象的所有属
性 。
10.5 Fields数据集合和 Field对象
每个 Field对象对应于 RecordSet中的一列,
由多个 Field对象可以构成 Fields数据集合 。
使用 Field对象的 Value属性可设置或取得当
前记录的数据 。
10.5 Fields数据集合和 Field对象
10.5.1 Fields数据集合
Fields数据集合提供的方法和属性包括 Count属
性 ( 用来取得 Fields数据集合中所包含的 Field对象
的数目 。 ), Refresh方法 ( 用于刷新记录, 可以重
新取得 Fields数据集合中所包含的 Field对象 。 ) 和
Item方法 ( 用于利用 Field对象的索引值 ( Index)
得到某一个 Field对象, 这个索引值通常介于 0到
Count属性值 -1之间 。 ) 。
10.5 Fields数据集合和 Field对象
语法如下:
Set Fields = RecordSet.Field
LongInt = Fields.count
Fields.Refresh
Set Field = Fields.Item(Index)
或
Set Field = Fields(Index)
10.5 Fields数据集合和 Field对象
10.5.2 Field对象的属性
Field对象包括 Name,Value,Type,Attribute,
NumericScale, Precision, ActualSize,
DefinedSize, OriginalValue 和 UnderlyingValue
等属性 。
10.5 Fields数据集合和 Field对象
语法如下:
String = Field.Name
Variant = Field.Value
DataType = Field.Type
LongInt = Filed.Attributes
Byte = Field.NumericScale
Byte = Field.Precision
Long = Field.ActualSize
Long = Field.DefinedSize
Variant = Field.DefinedSize
Variant = Field.OriginalValue
Variant = Field.UnderlyingValue
10.5 Fields数据集合和 Field对象
10.5.3 Field对象的方法
Field对象的方法包括 AppendChunk,GetChunk等
方法, 用来专门处理 text,image等数据类型的, 其
中,AppendChunk方法用于将数据写到数据库中;
GetChunk方法用于将数据从数据库中取出 。 语法如
下:
Field.AppendChunk data
Variant = field.GetChunk(size)
10.6 Properties数据集合和 Property对象
一个 ADO对象通常拥有多个属性可供使用, 而每
一个属性都是独立的 Property对象, 它们中的一些
拥有自己的名称, 值, 数据类型和属性, 为了方便
地控制 ADO,把这些具有相同父对象的属性集合于
Properties数据集合中 。
语法如下:
Set properties = ADO对象,Properties
10.6 Properties数据集合和 Property对象
10.6.1 Properties数据集合
Properties数据集合是包含特定对象实例的所有
Property对象, 有时候也称为 Properties数据集合
对象 。 包括 Count属性, Refresh方法和 Item方法等 。
Count属性用来取得 Properties集合中包含的
Property对象个数 。
Refresh方法用来重新取得 Properties数据集合
中所有的 Property对象 。
Item方法 用来 取得 Properties集合 中的 某个
Property对象 。
10.6 Properties数据集合和 Property对象
语法如下:
LongInt = Properties.count
Properties.Refresh
Set Property =
Properties.Item(Index)
或
Set Property = Properties(Index)
10.6 Properties数据集合和 Property对象
10.6.2 Property对象
Property对象主要是用来记录相应 ADO对象的每
一项属性值, 包括 Name, Value, Type 和
Attributes等属性 。
Name属性表示对象属性的名称 。
Value属性表示对象的属性值 。
Type属性表示对象属性的数据类型 。
Attributes属性表示对象的特性 。
10.7 Parameters数据集合与 Parameter对象
Parameters数据集合是 Command对象所有
Parameter对象的集合 。
Parameter对象是代表与参数化查询或存储
过程的 Command对象相关联的参数或自变量 。
10.7 Parameters数据集合与 Parameter对象
10.7.1 Parameters数据集合
在 Parameters集合包括:
Count属性用于确定给定集合中的 Parameters对
象的数目 。
Append 方 法 用 于 将 Parameter 对 象 追 加 到
Parameters集合中 。
Delete 方法用于从 Parameters 集合中删除
Parameter对象 。
Item方 法 可 以 根 据 名 称 或 序 号 返 回 集 合 的
Parameter对象, 序号是从 0到 Count-1。
Refresh 方 法 用 于 更 新 Parameters 集 合 中 的
Parameter对象 。
10.7 Parameters数据集合与 Parameter对象
语法如下:
LongInt = Parameters.Count
Parameters.Append Parameter
Parameters.Delete Index
Parameters.Refresh
Set Parameter = Parameters.(Index)
或
Set Parameter =
Parameters.item(index)
10.7 Parameters数据集合与 Parameter对象
10.7.2 Parameter对象
Parameter对象负责记录程序中要传递参数的相
关属性 。 Parameter对象提供了:
Name属性表示对象属性的名称 。
Value属性表示参数的设置初值 。
Type属性表示对象属性的数据类型 。
Attribute属性表示对象的特性 。
10.8 Errors数据集合和 Error对象
如果是通过直接建立 Connection对象来使用, 可
以通过 Connection对象 的 Errors数据 集合 取 得
Error对象 。 如果首先创建 了 RecordSet对象或
Command对象, 然后通过 ActiveConnection属性来
使用 Connection对象, 则必须通过 RecordSet对象
或 Command对象的 ActiveConnection属性来取得
Error对象 。
语法如下:
Set Err = Connection.Errors
Set Err=
RecordSet.ActiveConnection.Errors
Set Err = Command.ActiveConnection.Errors
10.8 Errors数据集合和 Error对象
10.8.1 Errors数据集合
Errors数据集合, 也称 Errors数据集合对象, 包
含在响应涉及提供者的单个失败时产生的所有 Error
对象 。 包括:
Count属性可以用来取得 Errors数据集合中所包
含的 Error对象个数 。
Clear方法用来清除 Errors数据集合中的 Error对
象 。
Item方法可以用来取得 Errors数据集合中的
Error对象 。
10.8 Errors数据集合和 Error对象
语法如下:
LongInt = Errors.Count
Errors.clear
Set Err = Errors.Item(Index)
或
Set Err = Errors(Index)
10.8 Errors数据集合和 Error对象
10.8.2 Error对象
Error对象提供了 Description,Number,Source,
NativeErro,SQLState,HelpContext和 HelpFile
等属性 。
? Description属性用来记录错误或警告发生的原
因或描述 。
? Number属性用来表示所发生的错误或警告代码,
在 ADO常数声明文件 adovbs.inc中定义了常用的常
数, 可以用来参考 。
10.8 Errors数据集合和 Error对象
? Source属性用来记录造成系统发生错误或警告的
来源 。
? NativeError属性用来表示所发生的错误或警告
代码, 与 Number属 性 的 不 同 之 处 在 于 这 里 指
provider缺省的错误代码 。
? SQLState属性表示最后一次的 SQL命令运行状态 。
? HelpContext属性表示错误或警告的解决方法说
明和主题 。
? HelpFile属性表示错误或警告的解决方法的说明
文件和主题 。