Delphi 7 ADO使用

Delphi7 ADO面板上的控件简介

一、 TADO Connection组件
该组件用于建立数据库的连接。ADO的数据源组件和命令组件可以通过该组件运行命令及数据库中提取数据等。
该组件用于建立数据库的连接,该连接可被多个数据集所共享,但是并不是应用程序中必须的,因为ADO数据集及命令组件通过设置其Connection String属性,可以直接连接到数据库。但是如果多个数据集使用相同的数据库连接时,则使用TADO Connection就有一定的优势,因为不必为每个数据集都单独建立数据库的连接,同时也减少了资源的消耗,并且可以建立跨越多个数据集的事务。一个事务(transaction)是数据库操作的一个阶段,用户对数据库的修改都保存在本地计算机的内存中,只有提交一个事务后,才能将修改的内容提交到数据库中。如果选择了回滚事务,则所有的修改将被取消,而不会提交到数据库中。

? TADO Connection
组件提供如下功能:
控件数据库的连接
控制服务器的注册
管理事务
为关联的数据集提供数据库连接
SQL命令发送到数据库中
获得数据库的原数据(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]);
执行一个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 DatasetTADO QuerTADO Stored Proc组件。尽管ADO Command组件的Exexute方法可以返回一个结果集,但却是通过另一个ADO数据集组件来使用该记录集。
TADO Command
组件与ADO Command对象相似,所以ADO Command组件中的属性和方法在ADO Command对象中都能找到相同的饿名字,并且具有相同的作用。如果使用ASP开发过动态网页,对此一定会有深刻的认识。
 TADO Command
代表了ADO CommandADO命令)对象,它通过一个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 Textcmd 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 DatasetADO组件中最通用的一个组件,它能获取并代表任何其他ADO组件从数据库返回的数据集合。数据集是通过SQL命令返回的一个表或者多个表数据。
   
要使ADO Dataset数据集组件能够正常地发挥作用,则应首先设置其ConnectionConnection String属性来建立起到数据库的连接。如果要使用一个RDS Data Space对象将该数据集连接到基于ADO的应用程序服务器,则需要RDS Connection属性设置为一个TRDS Connection对象。
由于ADO Dataset组件必须返回一个结果集,所以其Command Text属性中如果使用语句,则只能使用SELECT语句,而不能使用一引起数据操作语言(DML),比如DELETEINSERTUPDATE语句。
同时由于该数据集可以使用SQL 语句。所以可以从一个或多个基表中查询数据。

? ADO Dataset
的常用属性
1) Active
   
指示当前的记录集是否处于打开状态,调用open方法,打开数据库,Active值为True;调用close方法,数据库关闭,则ActiveFalse;
   
只有Active的值为False时,应用程序才能对数据库进行读写操作。需要将Active变为True的情况是:
数据库的状态设为ds Browse(浏览模式、查看、扫描数据)。
如果程序中加载了Before Open事件,在该事件被触发时。
如果程序加载了After Open事件,在该事件被触发时。
通过记录集打开一个数据指针时。
   
在更改数据集属性,且这些属性影响到数据库的状态或数据显示组件的状态时,要提前将数据集的Active属性设置为False
2) Auto Calc Fields
   
设为True,则允许应用程序触发On Calc Fileds事件。计算字段依赖于当前记录的一个或多个字段。通过已有的字段数据统计计算。该值为True,在记录数据被修改或者编辑时,就触发On Calc Fields事件。应用程序自动更新计算字段的值,以保证数据的一致性。能触发On Calc Fields事件的条件是:
数据集组件的状态变为ds Edit
记录已经被修改。
应用程序从数据库中重新获得一条记录。
   
可以看出,上述的情况并不都需要更新计算字段。如果用户需要频繁地修改数据,则On Calc Fields事件就会不断地调用。频繁地调用在一定程度影响了应用程序的性能。在这种情况下,可以将属性Auto Calc Fields设为False
3) Cache size
   
指定数据集的缓冲区大小。数据集首先把数据从数据库中取出,然后保存在内存的一块域中。这块内存区域就是所谓的缓冲区。如果设置Cache Size20,则表示数据集将一次从数据集将一次从数据库中提取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就只能通过后台运行SQLSELECT语句来访问数据库。如果设置为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是为了从数据集中查询一部分字段或记录,也可以使用INSERTVDELETEUPDATEALTER TABLESQL命令实现数据的更新、插入和删除记录的操作。如果数据集只包含一个基表,则可以使用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方法执行InsertvUpdateDelete等命令,不返回记录集。无论是调用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
   
指定一个业务对象的来源。如果该属性为空,则从本地计算机装载业务对象。HTTPHTTPSDCOM等协议,可以用于建立业务对象。如果使用HTTPHTTPS协议建立业务对象,则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
   
该事件在正确进行了用户注册并打开了到服务器的通道后触发。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都是大家转来转去,原文出处我已经找不到了。这篇文章写的很不错,但最后部分“PermuteFunction 的终极版本”描述的不太清楚,完全按照该文章代码执行,是不行的。可能是作者故意这样做的?本文最后提供修正后的下载地址。原文如下:一、关于API Hook1.什么是API Hook不知道大家是否还记得,在DO
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都是大家转来转去,原文出处我已经找不到了。 这篇文章写的很不错,但最后部分“PermuteFunction 的终极版本”描述的不太清楚,完全按照该文章代码执行,是不行的。需要修改mess.pas中代码才行。其实文中提到的一个结构,代码中并没有使用typePIMAGE_IMPORT_DESCRIPTOR = ^IMA
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c++ 调用, 抽空研究了一下该库的最新版 ,把部分api 翻译成了dephi版的 记录一下 地址 ffmpegvcl.zip
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的功能是:将源操作数送到目的操作数中,即:(dst) <--(src) 1.dst和src类型必须匹配,即必须同为字节
有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。 1.CreateProcess因为使用复杂,比较少用。 2.WinExec主要运行EXE文件。如:WinExec('Notepad.exe Readme.txt', SW_SHOW); 3.ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。 首先必须引用shellapi
API原型: Declare Function MoveFileEx& Lib "kernel32" Alias "MoveFileExA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal dwFlags As Long) 参数 类型及说明 lpExistingFileName String,欲移
附带通用控件安装方法: ---------- 基本安装 1、对于单个控件,Componet-->install component..-->PAS或DCU文件-->install; 2、对于带*.dpk文件的控件包,File-->Open(下拉列表框中选*.dpk)-->install即可; 3、对于带*.bpl文件的控件包,Install Packages-->Add-->bpl文件名即可; 4
type   TRec=Record     msg:string;     pic:TMemoryStream; end; procedure TForm2.BitBtn1Click(Sender: TObject); var   ms:TMemoryStream;   Rec1,Rec2:TRec;   cc:tmemorystream;   jpg:TJPEGImage; begin   R
program Project1; { Types and Structures Definition } type   WNDCLASSEX = packed record     cbSize: LongWord;     style: LongWord;     lpfnWndProc: Pointer;     cbClsExtra: Integer;     cbWndExtra: In
   在Windows大行其道的今天,windows界面程序受到广大用户的欢迎。对这些程序的操作不外乎两种,键盘输入控制和鼠标输入控制。有时,对于繁杂 的,或重复性的操作,我们能否通过编制程序来代替手工输入,而用程序来模拟键盘及鼠标的输入呢?答案是肯定的。这主要是通过两个API函数来实现的。      下面以Delphi为例来介绍一下如何实现这两个功能。模拟键盘我们用Keybd_event这个ap
delphi中经常见到以下两种定义 Type TMouseProc = procedure (X,Y:integer); TMouseEvent = procedure (X,Y:integer) of Object; 两者样子差不多但实际意义却不一样, TMouseProc只是单一的函数指针类型; TMouseEvent是对象的函数指针,也就是对象/类的函数/方法 区
Windows 2000/XP和2003等支持一种叫做"服务程序"的东西.程序作为服务启动有以下几个好处:     (1)不用登陆进系统即可运行.     (2)具有SYSTEM特权.所以你在进程管理器里面是无法结束它的.     笔者在2003年为一公司开发机顶盒项目的时候,曾经写过课件上传和媒体服务,下面就介绍一下如何用Delphi7创建一个Service程序.     运行Delphi7,选
方法一: 1.调试delphi 写的服务程序,有这么一个办法。原来每次都是用attach to process方法,很麻烦。并且按照服务线程的执行线路,可能会停不到想要的断点。笨办法是,在procedure TsvcFrm.ServiceExecute(Sender: TService);中想要下断的语句前加个人定胜天的sleep(20000),但实际上这种办法是主观臆测的。可行,没问题。记得大学
Delphi For iOS开发指南(17):让应用程序禁止竖屏(也就是只显示横屏)     最近好多人问,怎么样让Delphi For iOS开发的应用程序禁止竖屏,也就是想让它一直横屏显示,横屏是好,一行可以放好几个控件,表格的话也可以多显示几列,看起来方便。 只要一句代码就可以让Delphi For iOS开发的应用程序禁止竖屏,如下: Application.FormFactor.Orie
一个比较完整的Inno Setup 安装脚本,增加了对ini文件设置的功能,一个安装包常用的功能都具备了。 [Setup] ; 注: AppId的值为单独标识该应用程序。 ; 不要为其他安装程序使用相同的AppId值。 ; (生成新的GUID,点击 工具|在IDE中生成GUID。) AppId={{A9861883-31C5-4324-BD9A-DC3271EEB675} ;程序名 AppName
在Delphi自带的Indy控件中其实是提供了MD2,MD4,MD5对象的,我们可以直接使用它们来完成MD5的签名算法。而不需要再去找其它的DLL或是Pas了。 在Uses单元中引用 IdHashMessageDigest,IdGlobal, IdHash 单元,再写如下代码即可以达到MD5的实现。 示例代码 procedure TForm1.Button1Click(Sender: TObjec
在Delphi 7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下: 1 2 3 4 5 6 7 8 9 _NOTIFYICONDATAA = record    cbSize: DWORD;    Wnd: HWND;    uID: UINT;    uFlags: UINT;    uCallback
声明: 1. type Name = Existing type; 2. type Name = type Existing type; 3. type Name = (EnumValue1 [=value], EnumValue2 [=value] ...); 4. type Name = Expression1..Expression2; 5. type Name = ^Existing ty