第 69 章
信息。
? 域集合(Fields):记录集对象中包含了域对象的集合,域对象的集合中包含了所有代
表记录集中每列的域对象。
? 参数集合(Parcomters):命令对象中包含了参数对象的集合,参数集合中包含了应用
于命令对象的所有参数对象。
? 属xìng集合(Properties):在连接对象、命令对象、记录集对象和域对象中都包含了属
xìng对象的集合,属xìng对象的集合中包含了这些对象的所有特xìng。
? 错误集合(Errors):连接对象中包含了错误对象的集合,错误集合中包含了在一次连
接数据源时所产生的所有错误对象。
枫叶文学网www.fywxw.com
第12 章 数据库开发
·345·
12.5 ADO 的对象和集合
12.5.1 连接对象
连接对象即Connection 对象,它代表与数据源之间的一个连接,其常用的方法和属xìng分
别如表12-2 和表12-3 所示。
表12-2 连接对象的方法及其说明
方法 说明
Open 打开到数据源的连接
Execute 执行指定的查询、SQL 语句、存储过程或特定提供者的文本等内容
Close 关闭Connection 对象,释放所有关联的系统资源
BeginTrans 启动新的事务
CommitTrans 保存所有更改并结束当前事务,也可启动新事务
RollbackTrans 取消当前事务中所作的任何更改并结束事务,也可启动新事务
表12-3 连接对象的属xìng及其说明
属xìng 说明
Attributes
可以读写,其值可能为AdXactCommitRetaining 和AdXactAbortRetaining 中任意
一个
ConnectionTcomout 指示在终止尝试和产生错误前建立连接期间需等待的时间
CommandTcomout 指示在终止尝试和产生错误前执行命令期间需等待的时间
ConnectionString 包含用来建立到数据源的连接的信息
DefaultDatabase 指示Connection 对象的默认连接数据库
IsolationLevel 设置Connection 对象的隔离级别
Mode 设置或返回当前连接上提供者正在使用的访问权限
Provider 设置或返回连接提供者的名称
Version 返回ADO 执行的版本号
利用此对象,用户可以进行以下一些cāo作:
? 在进行连接前,通过ConnectionString、ConnectionTcomOut 和Mode 属xìng来配置建立
连接的信息、建立连接的超时限制和访问模式。
? 通过CursorLocation 属xìng支持批处理方式。
? 通过DefaultDatabase 属xìng设置缺省的连接数据库。
? 通过IsolationLevel 属xìng设置Connection 对象的隔离级别。
? 通过Provider 属xìng设置OLE DB 的提供者。
? 通过Open()和Close()方法分别来建立和关闭与数据源的连接。
? 通过Execute()方法来执行命令,通过CommandTcomout 属xìng设置执行命令超时的时限。
? 通过BeginTrans()、CommitTrans() 和RollbackTrans()方法以及Attributes 属xìng进行事务
控制。
? 通过Errors 集合检查数据源的错误信息。
? 通过Version 属xìng得到ADO 的版本信息。
? 通过OpenSchema()方法来得到数据库的表信息。
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·346·
12.5.2 命令对象
命令对象即Command 对象,一个Command 对象代表一个对数据源执行的命令,利用此
对象可以进行数据库的一些cāo作,比如查询、修改等。
Command 对象的主要方法和属xìng如表12-4 及表12-5 所示。
表12-4 命令对象的方法及其说明
方法 说明
Execute 执行在CommandText 属xìng中指定的查询、SQL 语句或存储过程
CreateParcomter 用指定的名称、类型、方向、大小和值创建新的Parcomter 对象,在参数中传
送的所有值都将写入相应的Parcomter 属xìng
Cancel 终止执行异步Execute()方法调用
表12-5 命令对象的属xìng及其说明
属xìng 说明
CommandText 设置或返回Command 对象的文本。通常该对象为SQL 语句
CommandTcomout 指示在终止尝试和产生错误之前执行命令期间需等待的时间
CommandType 指定命令类型,可以是文本命令、表格名或者是一个存储过程
ActiveConnection 指示指定的Command 对象当前所属的Connection 对象
State 随时使用State 属xìng确定指定对象的当前状态
Prepared 指示执行前是否保存命令的编译版本
利用Command 对象的一些方法和属xìng,用户可以进行以下一些cāo作:
? 通过CommandText 属xìng设置命令串。
? 通过Parcomter 对象和Parcomters 集合定义参数化查询或存储过程的参数。
? 通过Execute()方法执行一个命令,并返回一个Recordset 对象。
? 在执行命令前,通过CommandType 属xìng设置Command 对象的类型,以达到优化xìng能
的目的。
? 在执行命令前,通过Prepared 属xìng来设置底层提供者是否为当前命令保存一个编译过
的版本。如果现在保存,则以后再执行时,速度会加快。
? 通过CommandTcomout 属xìng设置执行命令的超时时限。
? 通过ActiveConnection 属xìng来指定该命令对象所属的连接(Connection)。
? 通过Ncom 属xìng来指定该命令对象作为其所属连接的一个方法,以便以后可以在相应
Connection 对象上通过Ncom 属xìng指定的名称来执行命令。
? 通过Source 属xìng将Command 对象传递给Recordset 来得到数据。
? 通过Properties 集合来访问提供者指定的属xìng。
12.5.3 记录集对象
记录集对象即Recordset 对象,它表示一个从数据源选择的一组纪录的集合,其主要方
法和属xìng如表12-6 及表12-7 所示。
表12-6 记录集对象的方法及其说明
方法 说明
MoveFirst 移动到记录集的第一条记录处
MoveLast 移动到记录集的最后一条记录处
枫叶文学网www.fywxw.com
第12 章 数据库开发
·347·
续表
方法 说明
MovePrevious 移动到记录集中当前记录的前一条记录处
MoveNext 移动到记录集中当前记录的后一条记录处
Move 移动到指定的记录
NextRecordset 返回复合命令语句中下一条命令的结果,或返回多个结果的已存储过程结果
Open 直接打开一个记录集,而不是作为执行命令或连接命令产生的记录集
Close 关闭记录集
Delete 删除记录集中的当前记录
Update 将当前对记录集的改动保存到数据源中
UpdateBatch 对更新命令进行批处理。它对记录集的变化进行缓存,直到调用此方法对变化进行
批量更新
CancelUpdate 取消Update 更新前所作的改动
CancelBatch 取消数据源中为提jiāo的批量改动
GetRows 获得记录集中的多行数据,并将获得的数据写入数组中
Requery 重新执行以前执行过的命令,重新获得记录集
Support 判断某一特定的记录集对象是否支持特定的属xìng和方法
Clone 产生一个记录集对象,其中包含记录集对象的所有数据
表12-7 记录集对象的属xìng及其说明
属xìng 说明
AbsolutePage 指定当前记录所在的页
AbsolutePosition 根据其在Recordset 中的序号位置移动到记录,或确定当前记录的序号位置
ActiveConnection 指定Recordset 对象当前所属的Connection 对象
BOF 指示当前记录位置是否位于Recordset 对象的第一个记录之前
EOF 指示当前记录位置是否位于Recordset 对象的最后一个记录之后
Bookmark 返回惟一标识Recordset 对象中当前记录的书签,或者将Recordset 对象的当前记录
设置为由有效书签所标识的记录
CacheSize 控制提供者在缓存中所保存的记录的数目,并可控制一次恢复到本地内存的记录数
目
CursorType 获得或设置当前光标的类型
EditMode 获得当前的编辑状态
Filter 指定一个在行集中移动时所使用的过滤器
LockType 得到或设置当前的访问状态
MaxRecord 获得或设置一次cāo作中的Recordset 对象中所返回的最大行的数目
PageCount 获得记录集中使用的页数
PageSize 获得或指定一页中的行数
RecordCount 获得记录集中包含的记录的数目
Source 获得记录集中记录的来源,可以是一个命令对象、SQL 语句、存储的过程或表名
Status 返回当前行的状态
12.5.4 ADO 的其他对象
除了前面介绍的3 个重要对象,ADO 还包括域对象Field、参数对象Parcomter、属xìng对
象Property 和错误对象Error。
1.域对象
Field 对象代表使用普通数据类型的数据列,它的常用方法和属xìng分别如表12-8 和表12-9
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·348·
所示。
表12-8 域对象的方法及其说明
方法 说明
AppendChunk
可将二进制或字符数据填写到域对象中,在系统内存有限的情况下,可使用此方
法对长整型值进行部分cāo作
GetChunk
检索域对象部分或全部二进制或字符数据,在系统内存有限的情况下,可使用此
方法处理部分长整型值
表12-9 域对象的属xìng及其说明
属xìng 说明
ActualSize 指示字段的值的实际长度
Attributes 域的属xìng集合,可以用来判断此域是否有固定长度或者是否可以为空
DefinedSize 确定Field 对象的数据容量
Ncom 列的名称
NcomricScale 在浮点数中用于指出小数点右边多少位
OriginalValue 发生任何更改前已在记录中存在的Field 的值
Precision 表示数字Field 对象的精度
Type 列中的值的数据类型
UnderlyingValue 反映了数据源中列的当前值,当在事务的同步时被使用
Value 列的值,用来查询或者设置此列的值
2.参数对象
Parcomter 对象代表基于参数化查询或存储过程的Command 对象相关联的参数,它的常
用方法和属xìng分别如表12-10 和表12-11 所示。
表12-10 参数对象的方法及其说明
方法 说明
AppendChunk
可将二进制或字符数据填写到域对象中,在系统内存有限的情况下,可使用此方
松语文学免费小说阅读_www.16sy.com
? 域集合(Fields):记录集对象中包含了域对象的集合,域对象的集合中包含了所有代
表记录集中每列的域对象。
? 参数集合(Parcomters):命令对象中包含了参数对象的集合,参数集合中包含了应用
于命令对象的所有参数对象。
? 属xìng集合(Properties):在连接对象、命令对象、记录集对象和域对象中都包含了属
xìng对象的集合,属xìng对象的集合中包含了这些对象的所有特xìng。
? 错误集合(Errors):连接对象中包含了错误对象的集合,错误集合中包含了在一次连
接数据源时所产生的所有错误对象。
枫叶文学网www.fywxw.com
第12 章 数据库开发
·345·
12.5 ADO 的对象和集合
12.5.1 连接对象
连接对象即Connection 对象,它代表与数据源之间的一个连接,其常用的方法和属xìng分
别如表12-2 和表12-3 所示。
表12-2 连接对象的方法及其说明
方法 说明
Open 打开到数据源的连接
Execute 执行指定的查询、SQL 语句、存储过程或特定提供者的文本等内容
Close 关闭Connection 对象,释放所有关联的系统资源
BeginTrans 启动新的事务
CommitTrans 保存所有更改并结束当前事务,也可启动新事务
RollbackTrans 取消当前事务中所作的任何更改并结束事务,也可启动新事务
表12-3 连接对象的属xìng及其说明
属xìng 说明
Attributes
可以读写,其值可能为AdXactCommitRetaining 和AdXactAbortRetaining 中任意
一个
ConnectionTcomout 指示在终止尝试和产生错误前建立连接期间需等待的时间
CommandTcomout 指示在终止尝试和产生错误前执行命令期间需等待的时间
ConnectionString 包含用来建立到数据源的连接的信息
DefaultDatabase 指示Connection 对象的默认连接数据库
IsolationLevel 设置Connection 对象的隔离级别
Mode 设置或返回当前连接上提供者正在使用的访问权限
Provider 设置或返回连接提供者的名称
Version 返回ADO 执行的版本号
利用此对象,用户可以进行以下一些cāo作:
? 在进行连接前,通过ConnectionString、ConnectionTcomOut 和Mode 属xìng来配置建立
连接的信息、建立连接的超时限制和访问模式。
? 通过CursorLocation 属xìng支持批处理方式。
? 通过DefaultDatabase 属xìng设置缺省的连接数据库。
? 通过IsolationLevel 属xìng设置Connection 对象的隔离级别。
? 通过Provider 属xìng设置OLE DB 的提供者。
? 通过Open()和Close()方法分别来建立和关闭与数据源的连接。
? 通过Execute()方法来执行命令,通过CommandTcomout 属xìng设置执行命令超时的时限。
? 通过BeginTrans()、CommitTrans() 和RollbackTrans()方法以及Attributes 属xìng进行事务
控制。
? 通过Errors 集合检查数据源的错误信息。
? 通过Version 属xìng得到ADO 的版本信息。
? 通过OpenSchema()方法来得到数据库的表信息。
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·346·
12.5.2 命令对象
命令对象即Command 对象,一个Command 对象代表一个对数据源执行的命令,利用此
对象可以进行数据库的一些cāo作,比如查询、修改等。
Command 对象的主要方法和属xìng如表12-4 及表12-5 所示。
表12-4 命令对象的方法及其说明
方法 说明
Execute 执行在CommandText 属xìng中指定的查询、SQL 语句或存储过程
CreateParcomter 用指定的名称、类型、方向、大小和值创建新的Parcomter 对象,在参数中传
送的所有值都将写入相应的Parcomter 属xìng
Cancel 终止执行异步Execute()方法调用
表12-5 命令对象的属xìng及其说明
属xìng 说明
CommandText 设置或返回Command 对象的文本。通常该对象为SQL 语句
CommandTcomout 指示在终止尝试和产生错误之前执行命令期间需等待的时间
CommandType 指定命令类型,可以是文本命令、表格名或者是一个存储过程
ActiveConnection 指示指定的Command 对象当前所属的Connection 对象
State 随时使用State 属xìng确定指定对象的当前状态
Prepared 指示执行前是否保存命令的编译版本
利用Command 对象的一些方法和属xìng,用户可以进行以下一些cāo作:
? 通过CommandText 属xìng设置命令串。
? 通过Parcomter 对象和Parcomters 集合定义参数化查询或存储过程的参数。
? 通过Execute()方法执行一个命令,并返回一个Recordset 对象。
? 在执行命令前,通过CommandType 属xìng设置Command 对象的类型,以达到优化xìng能
的目的。
? 在执行命令前,通过Prepared 属xìng来设置底层提供者是否为当前命令保存一个编译过
的版本。如果现在保存,则以后再执行时,速度会加快。
? 通过CommandTcomout 属xìng设置执行命令的超时时限。
? 通过ActiveConnection 属xìng来指定该命令对象所属的连接(Connection)。
? 通过Ncom 属xìng来指定该命令对象作为其所属连接的一个方法,以便以后可以在相应
Connection 对象上通过Ncom 属xìng指定的名称来执行命令。
? 通过Source 属xìng将Command 对象传递给Recordset 来得到数据。
? 通过Properties 集合来访问提供者指定的属xìng。
12.5.3 记录集对象
记录集对象即Recordset 对象,它表示一个从数据源选择的一组纪录的集合,其主要方
法和属xìng如表12-6 及表12-7 所示。
表12-6 记录集对象的方法及其说明
方法 说明
MoveFirst 移动到记录集的第一条记录处
MoveLast 移动到记录集的最后一条记录处
枫叶文学网www.fywxw.com
第12 章 数据库开发
·347·
续表
方法 说明
MovePrevious 移动到记录集中当前记录的前一条记录处
MoveNext 移动到记录集中当前记录的后一条记录处
Move 移动到指定的记录
NextRecordset 返回复合命令语句中下一条命令的结果,或返回多个结果的已存储过程结果
Open 直接打开一个记录集,而不是作为执行命令或连接命令产生的记录集
Close 关闭记录集
Delete 删除记录集中的当前记录
Update 将当前对记录集的改动保存到数据源中
UpdateBatch 对更新命令进行批处理。它对记录集的变化进行缓存,直到调用此方法对变化进行
批量更新
CancelUpdate 取消Update 更新前所作的改动
CancelBatch 取消数据源中为提jiāo的批量改动
GetRows 获得记录集中的多行数据,并将获得的数据写入数组中
Requery 重新执行以前执行过的命令,重新获得记录集
Support 判断某一特定的记录集对象是否支持特定的属xìng和方法
Clone 产生一个记录集对象,其中包含记录集对象的所有数据
表12-7 记录集对象的属xìng及其说明
属xìng 说明
AbsolutePage 指定当前记录所在的页
AbsolutePosition 根据其在Recordset 中的序号位置移动到记录,或确定当前记录的序号位置
ActiveConnection 指定Recordset 对象当前所属的Connection 对象
BOF 指示当前记录位置是否位于Recordset 对象的第一个记录之前
EOF 指示当前记录位置是否位于Recordset 对象的最后一个记录之后
Bookmark 返回惟一标识Recordset 对象中当前记录的书签,或者将Recordset 对象的当前记录
设置为由有效书签所标识的记录
CacheSize 控制提供者在缓存中所保存的记录的数目,并可控制一次恢复到本地内存的记录数
目
CursorType 获得或设置当前光标的类型
EditMode 获得当前的编辑状态
Filter 指定一个在行集中移动时所使用的过滤器
LockType 得到或设置当前的访问状态
MaxRecord 获得或设置一次cāo作中的Recordset 对象中所返回的最大行的数目
PageCount 获得记录集中使用的页数
PageSize 获得或指定一页中的行数
RecordCount 获得记录集中包含的记录的数目
Source 获得记录集中记录的来源,可以是一个命令对象、SQL 语句、存储的过程或表名
Status 返回当前行的状态
12.5.4 ADO 的其他对象
除了前面介绍的3 个重要对象,ADO 还包括域对象Field、参数对象Parcomter、属xìng对
象Property 和错误对象Error。
1.域对象
Field 对象代表使用普通数据类型的数据列,它的常用方法和属xìng分别如表12-8 和表12-9
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·348·
所示。
表12-8 域对象的方法及其说明
方法 说明
AppendChunk
可将二进制或字符数据填写到域对象中,在系统内存有限的情况下,可使用此方
法对长整型值进行部分cāo作
GetChunk
检索域对象部分或全部二进制或字符数据,在系统内存有限的情况下,可使用此
方法处理部分长整型值
表12-9 域对象的属xìng及其说明
属xìng 说明
ActualSize 指示字段的值的实际长度
Attributes 域的属xìng集合,可以用来判断此域是否有固定长度或者是否可以为空
DefinedSize 确定Field 对象的数据容量
Ncom 列的名称
NcomricScale 在浮点数中用于指出小数点右边多少位
OriginalValue 发生任何更改前已在记录中存在的Field 的值
Precision 表示数字Field 对象的精度
Type 列中的值的数据类型
UnderlyingValue 反映了数据源中列的当前值,当在事务的同步时被使用
Value 列的值,用来查询或者设置此列的值
2.参数对象
Parcomter 对象代表基于参数化查询或存储过程的Command 对象相关联的参数,它的常
用方法和属xìng分别如表12-10 和表12-11 所示。
表12-10 参数对象的方法及其说明
方法 说明
AppendChunk
可将二进制或字符数据填写到域对象中,在系统内存有限的情况下,可使用此方
松语文学免费小说阅读_www.16sy.com