ADO控件

来源:互联网 发布:mac地址 制造商 编辑:程序博客网 时间:2024/05/18 04:01


ADO控件包含以下几个:

1 TADOConnection 用于建立数据库的连接

2 TADOCommand

3 TADODataSet

4 TADOTable

5 TADOQuery

6 TADOStoredProc

7 TRDSConnection

 

一 TADOConnection

    用于建立数据库的连接,该连接可被其他几个数据库控件所共享,共享数据库连接的方式比较好1 不用重复去连接 2 修改数据库及数据库操作回滚时比较安全 3 不重复占用系统资源。

其功能如下:

1 数据库的连接控制

2 控制服务器的注册

3 管理事务

4 为关联的数据集提供数据库连接

5 将SQL命令发送到数据库中

6 获得数据库的原数据(metadata)

 

常用属性如下:

1 Attributes 用于设置连接的数据库的自动处理行为

        XaCommitRetaining 提交一个事务后自动开始一个新的事务

        XaAbortRetaining 回退一个事务的同时将开始一个新的事物

2 CommandTimeout 用于设置一个命令执行时所能等待的最大时间

3 Connected 标识数据库的连接是否处于激活态,也可以修改这个属性来进行连接

4 ConnectionString 用于指定数据库的连接信息,即数据库的‘位置’

5 ConnectOption 指定数据库连接是按照同步方式还是异步方式

        coConnectUnspecified 数据库连接采用同步方式连接

        coAsyncConnect 异步方式连接数据库(服务器负载较重时,此方式管用)

6 CursorLocation 指定数据库指针是指向客户端还是服务端

        cluseServer 使用服务器端的数据库指针,适用于数据量大的数据集

        cluseClient 使用客户端的数据库指针,数据将被下载到本地计算机,并在本地进行操作

7 DefaultDatabase 表明数据源,由数据源自动赋值

8 IsoLationLevel 指定不同事务之间的相互独立级别,因为数据库是可以多用户操作的,所以就引入这种事务独立级别来确定不同事务间的相互关系

        ilUnspecified 使用默认的独立级别,没有其它的独立级别

        ilChaos 来自更高独立级别的事务对数据库的改变不能被当前的事务覆盖

        ilReadUncommited 当前事务可以读取其他事务未提交的数据

        ilBrowse 当前事务可以读取其他事务未提交的数据

        ilcursorStability 事务提交后数据才能被读取

        ilReadCommitled 事务提交后数据才能被读取

        ilRepeatableRead 不能读取其他事务的数据,执行Reauery操作可以获得这些数据

        ilSerializable 从其他事务中获取事务的独立级别

        ilIsolated 从其他事务中获取事务的独立级别

9 KeepConnection 指定在没有打开数据集的情况下是否仍然保持数据的连接

10 LoginPrompt 指定在每次建立连接时是否弹出登录对话框提示用户登录

11 Mode 指定连接对数据库的操作权限

        cmUnknown 未指定数据库操作权限或无法确定

        cmRead 对数据库只能读操作

        cmWrite 对数据库只能写操作

        cmReadWrite 对数据库可读写操作

        cmShareDenyRead 禁止其他用户对数据库读操作

        cmShareDenyWrite 禁止其他用户对数据库写操作

        cmShareExclusive 禁止其他用户对打开数据连接

        cmShareDengNone 禁止其他用户对数据库任何操作

主要方法

1 BeginTrans 开始启动一个新事物,必须保证数据连接处于激活态

2 Cancel 关闭数据库的连接

3 CommitTrans 向数据库提交一个事务,提交完成后,在事务中对数据库所作的修改则写入数据库中,同时一个事务也结束

4 Execute(const CommandText: Widestring; var RecordsAffected; Executeoption: TExecuteOption=[eoExecuteNoRecords]);  

        执行一个CommandText类型的SQL命令,其中,CommandTetx是指定的SQL命令;ReardsAffected指定该命令设计的记录数目;

        ExecuteOptions指定命令特征如下:

        eoAsyncExecute 异步执行命令

        eoAsyncFetch 给定了Cach属性的值后,在异步的取数据

        eoAsyncFetchNonBlocking 非阻塞式线程执行

        eoExecuteNoRecords 没有返回记录

5 GetProcedureNames(List: TString); 获取数据库服务器上的存储过程名称,获取的存储过程名称在List参数中

6 GetTableName(List: Tstring; SystemTables; Boolean = False); 获取数据库中的数据表并存放于List参数中 SystemTables参数指示是否获取数据库系统表

7 Open(const UserID: widestring; const Password: widestring); 打开一个连接,参数UserID是数据库用户的用户名,Password是用户登录数据库的密码

8 RollbackTrans 撤回一个没有全部执行的事务

主要事件

AfterConnect 发生在连接建立后

AfterDisconnect 发生在断开连接后

BeforeConnect 发生在连接建立前

BeforeDisconnect 发生在断开连接前

OnBeginTranscomplete 发生在开始一个事务时

OnConnectComplete 发生在连接完成时

OnDisconnect 发生在断开时

OnExecuteComplete 发生在一个命令执行后

OnInfoMessage 发生在收到数据库的消息

OnLogin 发生在用户登录数据库的时候

OnRollbackTransComplite 发生在一个事务撤回后

OnWillConnect 发生在发出一个连接数据请求的时候

OnWillExecute 发生在数据库收到一个SQL命令并将要执行之前

 

二、ADOCommand

    向数据库发送SQL指令并返回请求的数据集。

其作用如下:

1 主要用于运行一些数据定义语言的SQL命令或一个没有返回结果的存储过程

2 尽管ADOCommand组件的Execute方法可以返回一个结果集,但却是通过另一个ADO数据集组件来使用该记录集

3 TADOCommand组件与ADOCommand对象类似

4 TADOCommand代笔了ADOCommand对象,他通过一个ADO提供者访问数据库,TADOCommand组件执行的是其CommandText属性中设置的命令,通过Execute方法执行。若该命令中需要使用参数,则通过Parameters属性设置。

主要属性

1 CommandText 指定要执行的SQL命令

2 CommandType 指定要执行的命令种类

        cmdUnknown 未知的命令类型

        cmdText 文本类型

        cmdTable 命令中指定的是一个表的名称

        cmdStoredProc 命令中指定的是一个存储过程的名称

        cmdFile 命令中指定的是保存数据集的文件名

        cmdTableDirect 命令中指定的是表的名称,并返回所有的列

3 Connection 指定所使用的数据源

4 Paramcheck 指定在SQL命令动态改变的时候,是否需要重置参数列表

5 Parameters 执行SQL命令时要用到的参数,在SQL命令中或在存储过程中需要传递参数的时候才需要设置这个值,并且在命令类型CmmandType指定为cmdText或cmdStroedProc时,参数才有效

主要方法

1 Cancel 中止一个正在执行的命令

2 Assign(source: TPersistent) 把另一个ADOCommand组件的所有属性复制到当前的ADOCommand组件中,调用时按名存取组件对象

3 Execute 执行ADOCommand组件所包含的命令,返回结果是一个数据记录集,可以被其他ADO组件的Recordset记录集属性调用

 

三、ADODataSet

    ADODataSet是ADO组件中最通用的一个组件,他能获取并代表任何其他ADO组件从数据库返回的数据集合。

其作用如下:

1 应首先设置其Connection或ConnectionString来建立到数据库的连接。若要使用一个RDSDataSpace对象将该数据集连接到基于ADO的应用程序服务器,则需要RDSConnection属性设置为一个TRDSConnection对象。

2 ADODataSet必须返回一个结果集,所以CommandText属性只能使用Select语句

3 可以从一个或多个基表中查询数据

常用属性

1 Active 指示当前记录集是否处于打开状态,调用Open方法打开数据库,Active值为true,调用close方法,数据库关闭,则Active为false。只有当Active的值为false时应用程序才能对数据库进行读写操作,需要将active变为true的情况是:

        数据库的状态设为dsBrowse(浏览模式、查看、扫面数据)

        如果程序中加载了BeforeOpen事件,在该事件被触发时

        如果程序加载了AfterOpen事件,该事件被触发时

        通过记录集打开一个数据指针时

        在更改数据集属性,且这些属性影响到数据库的状态或数据显示组件的状态时,要提前将数据集的Active属性设置为false

2 AutoCalcFields 设置为true,则允许应用程序触发OnCalcFileds事件。

3 Cachesize 指定数据集的缓冲区大小

4 CommandText 指定数据集合包含的命令,可以是SQL语句,一个表名或一个存储过程

5 Filer 数据集的过滤器,可以把那些不需要的数据过滤掉

6 MaxRecord 返回数据集记录数,默认值为0

常用方法

1 GetIndexNames(List:tString) 查询表中的全部索引,返回值将保存在参数List中

2 DeleteRecords(AffectRecords: TaffectRecords = arAll) 删除记录集的记录,参数AffectRecords用于指定要删除的具体记录

        arCurrent 仅删除当前记录

        arFiltered 删除满足过滤器过滤条件的数据

        arAll 删除记录的所有记录

        arAllChapters 删除ADO连接数据部分的全部记录

        缺省为arAll

 

0 0
原创粉丝点击