Delphi7 ADO面板上的控件简介

时间:2023-03-08 20:59:48

? ADO Connection的主要方法:
1) Begin Trans
    开始启动一个新的事务,必须保证数据连接处于激活状态。
2) Cancel
    关闭于数据库的连接。
3) Commit Trans
    向数据库提交一个事务。提交成功后,再事务中对数据库所作的修改则写入数据库中,同时一个事务也结束。
4)Execute(constCommandText:Widestring;VarRecordsAffected;Executeoptions:TexcuteOptions=[eoExecuteNoRecords]);
执行一个Command Text类型的SQL命令,其中,Command Text是指定的SQL命令;Reards Affected指定该命令设计的记录数目;Execute Options指定命令特征如下:
Execute Option的值及说明
参数 说明
eoAsync Execute 异步执行命令
eoAsync Fetch 给定了Cache属性的值后,在异步地去数据
eoAsync Fetch Non Blocking 非阻塞式线程执行
eoExecute No Records 没有返回记录
5) Get Procedure Names (List: T string);
    获取数据库服务器上的存储过程名称,获取的存储过程名称在List参数中。
6) Get Table Names(List: T string ; System Tables: Boolean=False);
    获取数据库中的数据表,获取的表名存放在List参数中System Tables参数指示是否获取数据库系统表的名称。数据库系统表是指在数据库中关于数据库数据类型定义和用户信息的数据表,这种系统表是数据库本身自动生成的。
7) Open(constUserID:widestring;constPassword:widestring)                           
    打开一个连接,参数User ID是数据库用户的用户名。Password是用户登录数据库的密码。
8) Roll back Trams
    撤回一个没有全部执行的事务。事务撤回之后,事务中所作的任何修改都不会写入数据库。

? ADO Connection的主要事件
事件 说明
After Connect  发生在一个连接建立之后
After Disconnect 发生在断开连接之后
Before Connect 发生在连接建立前
Before Disconnect 发生在断开连接前
On Begin Trans complete 发生在开始一个事务时
On Commit Trans complete 发生在提交事务成功时
On Connect Complete 发生在连接完成时
On Disconnect 发生在断开时
On Execute Complete 发生在一个命令执行后
On Info Message 发生在收到数据库的消息
On Login 发生在用户登录数据库的时候
On Rollback Trans Complete 发生在一个事务撤回之后
On Will Connect 发生在发出一个连接数据请求的时候
On Will Execute 发生在数据库收到一个SQL命令并将要执行之前

二、ADO Command组件
    ADO Command向数据库发送SQL指令并返回请求的数据集。
ADO Command组件主要用于运行一些数据定义语言(DDL)的SQL命令或者运行一个没有返回结果的存储过程。对于返回结果集的SQL语句,则最好使用TADO Dataset、TADO Quer或TADO Stored Proc组件。尽管ADO Command组件的Exexute方法可以返回一个结果集,但却是通过另一个ADO数据集组件来使用该记录集。
TADO Command组件与ADO Command对象相似,所以ADO Command组件中的属性和方法在ADO Command对象中都能找到相同的饿名字,并且具有相同的作用。如果使用ASP开发过动态网页,对此一定会有深刻的认识。
 TADO Command代表了ADO Command(ADO命令)对象,它通过一个ADO提供者访问数据库。TADO Command组件执行的是其Command Text属性中设置的命令,通过调用Execute方法执行该命令。如果该命令中需要使用参数,则通过Parameters属性设置,该属性与BDE数据集Tquery组件的Params属性的作用及设置方法相同。

? ADO Command的主要属性
1) Command Text
    指定要执行的SQL命令,可以手工编写,也可以利用Command Text编辑器对话框来设置这个属性。
Command Text编辑器是专门用来为ADO组件来编写SQL命令的。Table列表框用来列出数据库中所有的表,选中一个表,单击”Add Table to SQL”按钮,Command Text编辑器就会自动把表名插入SQL命令的相应位置。在选中某个表的同时,这个表中的所有字段都会自动地列在Fields列表框里。同样,选中Fields列表框中的一个字段,单击”Add Fields to SQL”,字段就会插入到SQL命令中。
2) Command Type
    指定要执行的命令的种类:
Command Type的参数及说明
参数 说明
cmd Unknown 未知的命令类型
cmd Text 文本类型
cmd Table 命令中指定的是一个表的名称
cmd Stored Proc 命令中指定的是一个存储过程的名称
cmd File 命令中指定的是保存数据集的文件名
cmd Table Direct 命令中指定的是表的名称,并返回所有的列
3) Connection
    指定所使用的数据源连接组件的名称,即ADO Connection组件的名称,通过这个属性使得ADO Command能与数据库连接起来。
4) Param check
    指定在SQL命令动态改变的时候,是否需要重置参数列表。
5) Parameters
执行SQL命令时要用到的参数,在参数查询中,即在SQL命令中或在存储过程中需要传递参数的时候才需要设置这个值,并且在命令类型Cmmand Type指定为cmd Text或cmd Stored Proc时,参数才有效。

? ADO Command主要方法:
1) Cancel
    中止一个正在执行的命令
2) Assign(source :T Persistent)
    把另一个ADO Command组件的所有属性复制到当前的ADO Command组件中。调用的时候,按名存取组件对象。
3) Execute
    执行ADO Command组件所包含的命令,返回结果是一个数据记录集,可以被其他ADO组件的Record set记录集属性调用。

三、 ADO Dataset组件
   ADO Dataset是ADO组件中最通用的一个组件,它能获取并代表任何其他ADO组件从数据库返回的数据集合。数据集是通过SQL命令返回的一个表或者多个表数据。
    要使ADO Dataset数据集组件能够正常地发挥作用,则应首先设置其Connection或Connection String属性来建立起到数据库的连接。如果要使用一个RDS Data Space对象将该数据集连接到基于ADO的应用程序服务器,则需要RDS Connection属性设置为一个TRDS Connection对象。
由于ADO Dataset组件必须返回一个结果集,所以其Command Text属性中如果使用语句,则只能使用SELECT语句,而不能使用一引起数据操作语言(DML),比如DELETE、INSERT和UPDATE语句。
同时由于该数据集可以使用SQL 语句。所以可以从一个或多个基表中查询数据。

? ADO Dataset的常用属性
1) Active
    指示当前的记录集是否处于打开状态,调用open方法,打开数据库,Active值为True;调用close方法,数据库关闭,则Active为False;
    只有Active的值为False时,应用程序才能对数据库进行读写操作。需要将Active变为True的情况是:
v 数据库的状态设为ds Browse(浏览模式、查看、扫描数据)。
v 如果程序中加载了Before Open事件,在该事件被触发时。
v 如果程序加载了After Open事件,在该事件被触发时。
v 通过记录集打开一个数据指针时。
    在更改数据集属性,且这些属性影响到数据库的状态或数据显示组件的状态时,要提前将数据集的Active属性设置为False;
2) Auto Calc Fields
    设为True,则允许应用程序触发On Calc Fileds事件。计算字段依赖于当前记录的一个或多个字段。通过已有的字段数据统计计算。该值为True,在记录数据被修改或者编辑时,就触发On Calc Fields事件。应用程序自动更新计算字段的值,以保证数据的一致性。能触发On Calc Fields事件的条件是:
v 数据集组件的状态变为ds Edit。
v 记录已经被修改。
v 应用程序从数据库中重新获得一条记录。
    可以看出,上述的情况并不都需要更新计算字段。如果用户需要频繁地修改数据,则On Calc Fields事件就会不断地调用。频繁地调用在一定程度影响了应用程序的性能。在这种情况下,可以将属性Auto Calc Fields设为False。
3) Cache size
    指定数据集的缓冲区大小。数据集首先把数据从数据库中取出,然后保存在内存的一块域中。这块内存区域就是所谓的缓冲区。如果设置Cache Size为20,则表示数据集将一次从数据集将一次从数据库中提取20条记录并将这20条记录保存到缓冲区中。缺省值为1,也是最小值。
4) Command Text
     指定数据集合中包含的命令,可以是SQL语句,一个表名或者一个存储过程名。常用的调用形式为:
with ADODataset1 do 
begin
    command Type:=cmd Text;
command Text:=’Select * From customer Table’;
open;
end;
5) Filer
    数据集的过滤器,通过使用过滤器可以把那些不需要的数据过滤掉。设置Filter属性的典型方法为:
with ADODataset1 do begin
Filterd:=False;
Filter:=’State=’+Quotedstr(‘CA’)+’OR’+”State=’+Quotedstr(‘CA’);
Filterd:=True;
End;
    如果用户修改了带有过滤数据集的数据,修改的结果如果不满足过滤器的条件,则修改的数据就自动从当前的数据库中消失。
6) Max Record
    返回数据集记录数,默认值为0。

? ADO Dataset的常用方法
1) GetIndex Names( List: T string)
    查询表中的全部索引,返回值将保存在参数List中,调用方法为:
ADODataset1.GetIndexNames(ListBox1.Items);
2) Delete Records(Affect Records: Taffect Records=ar All)
    删除记录集的记录,参数Affect Records用于指定要删除的具体记录。它的取值可为如下:
Affect Records的参数及说明
参数值 说明
ar Current 仅删除当前记录
ar Filtered 删除满足过滤器过滤条件的数据
ar All 删除记录的所有记录
ar All Chapters 删除ADO连接数据部分的全部记录
    缺省值为ar All,删除当前记录集中的所有记录。
3) Locate(const Key Fields: String; const Key Values: Variant; Options: T LocateOptions)
    定位一条记录并把这条记录作为当前记录。其中Key Fields是索引的字段名;Key Values是要查找的值;Options是定位数据选项,他的值可以是:
v Io Case Insensitive:定位数据不区分大小写。
v Io Partial key:部分匹配定位查找数据。
4) Requery (options: Texe cute Option=[])
    刷新数据集中的数据,它是通过重新执行原来的命令或SQL语句来重新生成记录集。
5) SaveToFile(constFileName:String=’’;Format:TpersisFormat=PftAdTg)
    把当前数据集中的数据按照指定的格式保存到指定的文件中。File Name为指定的文件名:Format为保存的文件格式,它可以选取下列值:
v PfAd TG:按照ADTG(Advanced Data Table gram)格式生成文件。
v PfX ML:按照XML格式保存文件。
6) seek(const Key Values: Variant; seek Option: Tseek option=So First EQ)
    搜索记录并移动数据集的指针。搜索动作是以当前数据集中的索引为搜索依据。其中Key Values为被搜索的值。
    Success:=ADODataSet1.seek(‘Jones’, So First EQ);
    如果搜索到复合索引的值,则返回True,反之为False,也可以同时搜索多个值:
    ADODataSet1.seek(Var Arrayof([90030,90020]),so First EQ);
    这就需要利用函数Var Arrayof()构造一个参数传递给Key Values。
    Seek的第二个参数seek option限定了搜索行为的动作。可以取的值如下:
Seek option的取值及说明
参数值 说明
So First EQ Rexord 数据库指针定位在第一条匹配的记录处,如果没有任何匹配记录则指向数据库的未记录
So Last EQ Record 数据库指针定位在最后一条匹配的记录处,如果没有任何匹配记录则指向数据库的未记录
So After EQ Record 如果搜索到匹配记录,在指向匹配记录的下一条,如果没有找到则指向最近似匹配记录上
So After 指向匹配记录的下一条
So Before EQ 如果搜索到匹配记录,在指向匹配记录的前一条,如果没有找到则指向最近似匹配记录上
So Before 指向匹配记录的前一条

四、ADO Table组件
    ADO Dataset组件、ADO Table组件、 ADO Query组件和ADO stre Proc组件都是继承自父类Tcustom ADO Dataset ,所以在属性、事件及方法上有许多共同的地方。
    TADO Table组件只能通过ADO访问数据库中单个基表的数据,它即可以访问一个基表中的所有数据及字段,也可以访问部分记录,即通过在Filter属性设置筛选条件实现。
由于TADO Table组件与其他组件不同的是,它专门针对数据库中表进行操作。

? TADO Table特有的一些属性方法:
1) Mater Source属性和Master Fields属性
    Mater Source属性是用于建立主从关系的数据源,当前的ADQ Table中的数据将根据Mater Source属性所指定的数据源变化而变化。在一个数据库汇总,某些表之间可能存在互相关联的,一种常见的情况是两个表之间存在共同的字段。通过这些共同的字段,可以建立主从关系的关联。可以通过访问一个表而得到另一个表的数据,这种主从关系建立以后,如果用户在主表记录选中一条记录,则从表中相应的记录自动获得。
    Master Fields属性指定用于建立主从关系的关联字段,指定的字段是将主表和从表赖以存在的纽带,这个字段必须是主从表*有的字段。
2) Readonly
    指定ADO Table中数据是否处于只读状态。
3) Table Direct
    指定是通过表名来访问数据库还是在后台运行SQL命令访问数据库,部分的数据提供者不支持通过表名对数据库的访问,这时的ADO Table就只能通过后台运行SQL的SELECT语句来访问数据库。如果设置为True,则ADO Table组件在后台运行SQL命令访问数据表,为False按表名访问数据库,缺省值为Flase。
4) Table Name
    指定ADO Table要操作的表名。
    只有当设置了正确的connection或者connection string, Active属性为True的时候,才能设置Table Name属性,表名的列表才会在Object Inspector中显示。
5) Append方法和Append Record( const Values: arrayofconst)
    使用Append方法在增加一条新记录的同时,并为新记录赋值。赋值是通过一个数组作为参数传递进去的。但是必须保证数组的维数和字段数一致且顺序一致。
6) Post方法
    执行Post方法,是将已经修改完毕的记录写入数据库中。通常是每执行完一个修改记录的操作,执行一次Post操作,以完成对数据库的更新。

五、ADO Query组件
   ADO Query组件借助于SQL语言的强大功能访问多个数据表,可以实现数据浏览、修改和删除等操作,并且,ADO Query组件可以实现参数查询。所谓参数在使用上可以理解为变量。在执行SQL之前,就被赋值。运用参数化查询,不需要修改SQL语句,给定不同的参数值,就可以获得不同得到的查询结果。通常情况下,使用ADO Query是为了从数据集中查询一部分字段或记录,也可以使用INSERTV、DELETE、UPDATE、ALTER TABLE等SQL命令实现数据的更新、插入和删除记录的操作。如果数据集只包含一个基表,则可以使用ADO Query,也可以使用TADO Table数据集。

? ADO Query的主要属性和方法
1) SQL属性
    SQL属性是T string类型的变量,包含了ADO Query组件要执行的SQL命令,它是ADO Query的最为重要的属性之一。在应用程序中,可以调用open方法或Exec SQL方法来执行SQL属性中指定的SQL语句。在代码编写阶段,可以利用属性编辑器编写,在应用程序执行过程中也可以动态的修改。
2) Parameters
    Parameters属性中保存了SQL属性中的SQL命令中执行所需的参数,这些参数可以在程序设计阶段添加,这时可以在Object Inspector设定参数的值,并且,参数的数量和类型必须与SQL属性中SQL语句的参数一致。
3) open方法和Exec SQL方法 
    这两种方法通常用于执行SQL属性所指定的SQL命令,动态上基本上类似。但是open方法通常调用SELECT语句,只要返回记录集,而Exec SQL方法执行Insertv、Update或Delete等命令,不返回记录集。无论是调用open方法还是Exec SQL方法,在执行它们之前都必须调用close方法。

六、TADO store Proc组件
   如果一个客户应用程序必须使用数据库中的存储过程,则可以使用TADO store Proc组件,一个存储过程是一组语句,提前建立好的保存在数据服务器上,可以反复被执行,在服务器上完成与数据库有关任务,并将结果传递给客户。

? TADO Stored Proc组件的主要属性
    TADO Stored Proc组件与其它ADO数据集有相似的属性,经常需要设置的属性如下:
1) Active
    设置为True时,可以激活数据集;设置为False;则关闭数据集。
2) Connection
    如果应用程序中添加了TADO Connection组件,则可以通过选择该组件来建立数据库的连接。
3) Connection string
    如果设置Connection属性,则可以在该属性中设置一个连接到数据库的字符串。
4) Data Source
    是另一个数据集对应的数据源,用于为当前数据集提供一些值,一般情况下,不要设置该属性,更不能将其属性设置为当前数据集使用的数据源。实际上如果这样做,在设计阶段Delphi就会报错。
5) Filter
    设置筛选记录的条件。
6) Filtered
    决定是否激活Filter中设置的筛选条件。
7) Parameters
    设置数据集使用的存储过程的名字,可以从下拉框中选择。

? TADO Stored Proc组件主要的方法
1) Create
    该方法用于建立TADO Stored Proc组件的一个实例。实际上,当使用ADO组件面板上的TADO Stored Proc组件,在一个表单或数据模块中插入该组件时,就自动建立了一个实例,也就相当于隐含地调用了Creat方法。所以一般很少直接调用该方法建立TADO Stored Proc组件的实例。
2) close
    用于销毁TADO Stored Proc组件的一个实例。
3) Delete Records
    用于删除一条或多条记录。
4) Edit 
    设置数据集为编辑状态。
5) Enable Controls
    使用数据感知控件重新显示数据。
6) Disable Controls
    使数据感知控件不能显示数据。
7) Firse
    导航到数据集的第一条记录。
8) Last
    导航到数据集的最后一条记录。
9) Prior
    导航到数据集的前一条记录。
10) next
    导航到数据集的下一条记录。
11) Move By
    向前或向后导航多条记录。
12) Get Field Data
    将一个字段当前的值提取到缓冲区中。
13) Is Empty
    判断一个数据集是否为空。
14) open
    打开一个数据集。
15) Refresh
    重新从数据库中提取数据来更新数据集的数据。

? TADO Stored Proc组件的事件
    TADO Stored Proc组件与TADO Query组件的事件基本相同,所以可以参考TADO Query组件事件的说明。

七、TRDS Connection组件
   TRDS Connection组件用于实现一个RDS Data Space对象。当一个Record set(记录集)对象从一个进程或机器传递到另一个进程或机器上时,RDS Data space对象负责管理数据的汇集。当使用基于ADO的业务(business)对象(应用程序服务器)来建立多层的应用程序时,应该使用TRDS Connection对象。
    在建立应用程序时,使用TRDS Connection组件代替TADO Connection组件,建立与一个TADO Dataset数据集的关联关系,并在TADO Dataset组件的RDS Connection属性中选择使用的TRDS Connection组件实例。
    默认情况下,TRDS Connection组件与RDS Data Factory对象一起使用。如果不需要专门的业务对象,可以使用Data Factory对象。

? TRDS Connection组件主要的属性
1) App server
    用于访问应用程序服务器的通信接口,如果访问与Record sets对象武官的业务对象的附加属性或方法时,可以使用该属性。
2) Computer Name
    指定一个业务对象的来源。如果该属性为空,则从本地计算机装载业务对象。HTTP、HTTPS和DCOM等协议,可以用于建立业务对象。如果使用HTTP和HTTPS协议建立业务对象,则Computer name属性是包含确定ⅡS· web服务器的URL的一个字符串,服务器的业务对象实例就在该服务器上建立;如果使用DCOM协议,则computer Name属性是计算机的名字。
3) Data Space Object
    提供对RDS Data space对象接口的访问。
4) Connected
    确定是否已经建立了到远程数据源的连接,设置为True,则表示建立连接。
5) Internet Timeout
    设置超出规定的请求次数以前使用时间的数量,以毫秒计算
6) Name
    设置TRDS Connection组件实例的名字。
7) Server Name
    指定业务对象,即需要初始化的业务对象的Prog ID。默认值是在RDS Server Data Factory属性中,这是RDS Server Data Factory对象的Prog ID。

? TRDS Connection组件主要方法
1) Get Record set
    用于从一个业务对象中提取一个记录集,与RDS连接组件关联的TADO Dataset会自动调用该方法,其方法如下:
function Get Recordest(Const CommandText:Widestring;connectionstring:widestring=’’):_recordset
2) Free
    销毁组件的实例并释放其占用的资源。
3) open
    打开TRDS Connection的连接。
4) Creat
    建立TRDS Connection组件的一个实例,当在表单或数据模块添加一个TRDS Connection组件时,就会隐含调用该方法。
5) Destory
    用于销毁TRDS Connection组件的一个实例,在应用程序中一般不要直接调用该方法。而应调用Free方法来销毁组件的实例

? TRDS Connection组件的事件
1) After Connect
    该事件在建立TRDS Connection组件的连接后触发。
2) After DisConnect
    该事件在断开TRDS Connection组件的连接后触发。
3) Refore Connect
    该事件在建立TRDS Connection组件的连接前触发。
4) Before Connect
    该事件在断开TRDS Connection组件的连接前触发。
5) On Login
    该事件在正确进行了用户注册并打开了到服务器的通道后触发。