Delphi7 ADO面板上的控件简介
一、 TADO Connection组件
该组件用于建立数据库的连接。ADO的数据源组件和命令组件可以通过该组件运行命令及数据库中提取数据等。
该组件用于建立数据库的连接,该连接可被多个数据集所共享,但是并不是应用程序中必须的,因为ADO数据集及命令组件通过设置其Connection String属性,可以直接连接到数据库。但是如果多个数据集使用相同的数据库连接时,则使用TADO Connection就有一定的优势,因为不必为每个数据集都单独建立数据库的连接,同时也减少了资源的消耗,并且可以建立跨越多个数据集的事务。一个事务(transaction)是数据库操作的一个阶段,用户对数据库的修改都保存在本地计算机的内存中,只有提交一个事务后,才能将修改的内容提交到数据库中。如果选择了回滚事务,则所有的修改将被取消,而不会提交到数据库中。
? TADO Connection组件提供如下功能:
v 控件数据库的连接
v 控制服务器的注册
v 管理事务
v 为关联的数据集提供数据库连接
v 将SQL命令发送到数据库中
v 获得数据库的原数据(metadata)
? TADO Connection的常用属性
1) Attributes
此属性用于设置连接的数据库的自动处理的行为,它是Txact Attributes
类型的集合,包括两个集合元素:
I. Xa Commit Retaining:提交一个事务后自动开始一个新的事务。
II. Xa Abort Retaining:回退一个事务的同时将开始一个新的事务。
2) Command Timeout
连接超时属性,用于设置一个命令执行时所能等待的最大时间值。以秒为计量单位。缺省值为30秒,即连接命令等待了30秒之后还没有被执行,系统就放弃这个命令。
3) Connected
标识和数据库的连接是否处于激活状态。
用户可以查询Connected属性的值来判断数据库的连接状态。如果该属性为true,则表明数据库处于连接状态;为false,则当前数据库连接关闭。
4) Connection String
连字符串用于指定数据库的连接信息。连字符串的标准调用方为:ADOConnection1.ConnectionString:='Provider=ProviderRet; Remote Server=Server Ret';
其中,连接串支持的常用参数如下:
数据库连接参数及说明
参数 说明
Provider 数据提供者名称,例如MSDASQL.1
Password 登录数据库的口令
参数 说明
Persist Security 支持安全登录
User ID 登录数据库用户
Data Source 数据源名称、数据源的设置需要额外的操作
设置成功之后,用户就可以将属性Connected设置为True,如果没有任何提示信息,说明数据库已经成功连接,此时,属性Default Patabase就被赋值为连接所指定的数据库的路径。
5) Connect Options
指定数据库连接是按照同步方式还是异步方式。类型Tconnectoption包含两个值:
v coConnect Unspecified:数据库连接采用同步方式连接。
v coAsync Connect:异步方式连接数据库。当服务器负载很重的时候,这种连接方式很有用。引用这种连接方式,在第一次建立连接的时候,应用程序不能获得全部的数据。
6) Cursor Location
指定数据库指针是指向客户端还是服务器端。类型Tcursor Location包含两个值:
v cluse Server:使用服务器端的数据库指针,适用于数据量大的数据集。
v cluse Client:使用客户端的数据指针的时候,数据将被下载到本地计算机上,并在本地进行操作。
7) Default Database
表明数据源成功连接后,这是由数据源自动赋值的。
8) IsoLation Level
指定不同事务之间的相互独立的级别,事务实际上是对数据库的一系列操作的集合。事务具有整体性,如果事务中的某一个步骤不能正确执行,则整个事务都不会执行。由于数据库服务器可以同时支持多个连接,来自不同连接的事务有可能在同一时刻对同一个数据进行操作,这就有可能造成数据不一致性。为防止这种情况出现,ADO引入了事务独立级来确定不同事务之间的相互关系。设定事务独立级之后并调用Begin Trans方法后,新的事务独立级别将生效。
TISolationLevel共包含9种常量值:如下:
TISolationLevel常量及说明
常量参数 说明
ilUnspecified 使用默认的独立级别,没有其它的独立级别
ilChaos 来自更高独立级别的事务对数据的改变不能被当前的事务覆盖
ilReadUncommitled 当前事务可以读取其他事务未提交的数据
ilBrowse 当前事务可以读取其他事务未提交的数据
ilcursorStability 事务提交后数据才能被读取
ilReadCommitled 事务提交后数据才能被读取
ilRepeatable Read 不能读取其它事务的数据,执行Requery操作可以获得这些数据
ilSerializable 从其他事务中获取事务的独立级别
ilIsolated 从其他事务中获取事务的独立级别
这些常量的定义在Microsoft Data Access SDK中有详尽的说明,需要进一步了解可以查询微软的SDK文档。
9) Keep Connection
指定如果在没有打开数据集的情况下是否仍然保持数据的连接。
濒繁地打开和关闭数据库的操作将会影响系统的性能,特别在网络上,会在一定程度上增加网络的负载。这个属性设置数据源始终处于连接状态,可以显著提高程序的性能。
10) Login Prompt
指定在每次建立连接时是否弹出登录对话框提示用户登录。如果设为False,则必须在Connection String中指定登录数据库的用户和密码。
11) Mode
指定连接对数据库的操作权限,这种连接模式的值如下:
连接模式参数及说明
参数 说明
cmUnknown 未指定数据库操作权限或无法确定
cmRead 对数据库只能读操作
cmWrite 对数据库只能写操作
cmRead Write 对数据库可读写操作
cmShare Deny Read 禁止其他用户对数据库读操作
cmShare Deny Write 禁止其他用户对数据库写操作
cmShare Exclusive 禁止其他用户对打开数据连接
cmShare Deng None 禁止其他用户对数据库任何操作
? ADO Connection的主要方法:
1) Begin Trans
开始启动一个新的事务,必须保证数据连接处于激活状态。
2) Cancel
关闭于数据库的连接。
3) Commit Trans
向数据库提交一个事务。提交成功后,再事务中对数据库所作的修改则写入数据库中,同时一个事务也结束。
4)Execute(constCommandText:Widestring;VarRecordsAffected;Executeoptions:TexcuteOptions=[eoExecuteNoRecords]);
执行一个Comma