TADODataSet 是最常用的A D O 数据集组件。TA D O D a t a S e t 可以从A D O 数据库内读取一张 或多张数据表。这种读取可以是直接读取数据表格,也可以通过S Q L 语句访问。 在使用TADODataSet 访问数据之前需要建立它与数据库之间的联系。建立这种联系可以 通过设置TA D O D a t a S e t 的C o n n e c t i o n S t r i n g 属性或者通过设置Connection 属性为一个TA D O C -onnection 组件。 使用TA D O D a t a S e t 组件的C o m m a n d Te x t 属性获取数据集中的数据。它可以指定为一个数 据表格或者S Q L 语句(只限于S E L E C T 语句)。TA D O D a t a S e t 不能使用不输出数据结果的D M L SQL 语句(数据操作语言),例如D E L E T E 语句,I N S E RT 语句和U P D AT E 语句。如果要使用 这些语句,可以通过TADOCommand 组件或TA D O Q u e r y 组件。 1. TADODataSet 组件的属性 通过设置组件的属性,可以完成用户对数据访问的需要,下面介绍该组件的一些属性。 • ConnectionString C o n n e c t i o n S t r i n g 是用来指明数据库的连接信息的属性。通过设置C o n n e c t i o n S t r i n g 来指明 将A D O 数据集组件与数据集相连的必要信息。ConnectionString 的属性值包含了一个或多个ഊA D O 用来建立联系的。如果是包含多个参数,那么它们相互之间要用冒号分开。例如: ADODataSet1.ConnectionString := 'Provider=ProviderRef:Remote Server=ServerRef'; 在程序设计阶段,它可以通过激活对象观察器中该属性栏,从允许的A D O 数据库连接中 选取。该属性值可以保存为文件以后使用,在以后使用时只需要在该属性栏中指明此文件名 就可以再次使用该值。该属性值也可以包含用户的身份和密码等信息,以实现自动登录的目 的。 A D O 的C o n n e c t i o n S t r i n g 的属性值支持下列四种参数:P r o v i d e r 、File name 、R e m o t e P r o v i d e r 和Remote Server 。其他的变元(例如用户的身份和密码)将不被A D O 处理而只简单 地被传输。 • CommandTe x t 属性 C o m m a n d Te x t 是一个可以用来表达语句、数据表格名或者执行的存储过程,要为该属性 赋一个文本值,如下面的例子: C o m m a n d Text := 'SELECT *FROM CustomerTa b l e ' ; 在TA D O D a t a S e t 组件的属性对话框中单击C o m m a n d Te x t 属性,就会弹出如图4 - 1 4 的对话 框,可以在其中设置该属性。 图4-14 设置CommandText 属性的对话框 • CommandTy p e 属性 C o m m a n d Ty p e 用于指明C o m m a n d Te x t 属性的类型,该属性的值应该和属性的值相一致, 例如C o m m a n d Te x t 属性是数据表格的名称,那么C o m m a n d Ty p e 属性的值就应该是c m d Table 或 c m d Ta b l e D i r e c t ,如果C o m m a n d Te x t 属性的值是一个S Q L 语句,C o m m a n d Ty p e 属性的值就应 该是c m d Te x t 。C o m m a n d Ty p e 属性的默认值是c m d U n k n o w n ,对于各种类型的命令都可以使用 该默认值,但是由于A D O 必须确定命令的类型,就会降低运行的速度。下面的例子演示了如 何为属性赋值: C o m m a n d Type := cmdTe x t ; C o m m a n d Text := 'SELECT *FROM CustomerTa b l e ' ; • Connection 属性 第4 章数据访问组件105 下载ഊ使用Connection 属性来指明A D O 组件与ADO 数据库联系的方式。在程序设计阶段,从对 象观察器中的C o n n e c t i o n 属性栏的下拉列表中选择可能的TA D O C o n n e c t i o n 对象。当然, C o n n e c t i o n 属性也可以在程序运行阶段设置。例如: ADODataSet1.Connection := ADOConnection1; 2. TADODataSet 组件的方法 TADODataSet 组件的方法大多从TDataSet 处继承而来。例如用来移动数据指针的F i r s t 、 N e x t 、L a s t 和P r i o r 的方法,用来编辑数据记录的Insert 和E d i t 方法。在此不再赘述。 3. TADODataSet 组件的使用 TA D O D a t a S e t 组件使D e l p h i 的应用程序具有通过A D O 访问一个或多个数据表格的能力。 在A D O 数据集组件的C o m m a n d Te x t 属性中说明需要访问的数据表格名。TADODataSet 同样也 提供给应用程序执行操作的能力。 与数据库的联系可以通过指定A D O 数据集组件的C o n n e c t i o n S t r i n g 的属性值或者通过另外 一个TA D O C o n n e c t i o n 组件完成。 应用程序中访问和操作TA D O D a t a S e t 组件中的数据的方法与标准的基于B D E 的数据集组 件的方法一样。将A D O 数据集组件的D a t a S e t 属性设置为一个标准的T d a t a S o u r c e 组件。 T d a t a S o u r c e 这时就联系着A D O 数据集组件和数据控制组件。 TADODataSet 组件的方法基本与TDa t a S e t 组件一样,可以使用F i r s t 、N e x t 、L a s t 和P r i o r 来移动数据记录指针,使用Insert 和E d i t 方法来编辑数据记录。 106 Delphi 5 数据库开发技术
procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin if not adodataset1.Active then adodataset1.Active; edit1.Text := '共有'+ inttostr(adodataset1.Recordset.RecordCount)+'行'; edit1.Text :='共分为'+ inttostr(adodataset1.Recordset.PageCount)+'页'; adodataset1.Recordset.MoveFirst; for i:=1 to adodataset1.Recordset.RecordCount do begin edit1.Text:= edit1.text +' - ' + string(adodataset1.Recordset.Fields.Item['au_fname'].Value); adodataset1.Recordset.MoveNext; end; end;以上我刚才测的输出例子.你说的ADODataSet1.Recordset.Fields(1)肯定要出错的。
没有例子呀,大哥!!
Recordset的属性常用的有AbsolutePage,bof,eof,move等,方法由addnew,delete等
具体使用的时候你用adodataset1.recordset.系统会用红色显示可用的属性方法等。更详细的帮助看以下ado带的帮助吧。
或多张数据表。这种读取可以是直接读取数据表格,也可以通过S Q L 语句访问。
在使用TADODataSet 访问数据之前需要建立它与数据库之间的联系。建立这种联系可以
通过设置TA D O D a t a S e t 的C o n n e c t i o n S t r i n g 属性或者通过设置Connection 属性为一个TA D O C -onnection
组件。
使用TA D O D a t a S e t 组件的C o m m a n d Te x t 属性获取数据集中的数据。它可以指定为一个数
据表格或者S Q L 语句(只限于S E L E C T 语句)。TA D O D a t a S e t 不能使用不输出数据结果的D M L
SQL 语句(数据操作语言),例如D E L E T E 语句,I N S E RT 语句和U P D AT E 语句。如果要使用
这些语句,可以通过TADOCommand 组件或TA D O Q u e r y 组件。
1. TADODataSet 组件的属性
通过设置组件的属性,可以完成用户对数据访问的需要,下面介绍该组件的一些属性。
• ConnectionString
C o n n e c t i o n S t r i n g 是用来指明数据库的连接信息的属性。通过设置C o n n e c t i o n S t r i n g 来指明
将A D O 数据集组件与数据集相连的必要信息。ConnectionString 的属性值包含了一个或多个ഊA D O 用来建立联系的。如果是包含多个参数,那么它们相互之间要用冒号分开。例如:
ADODataSet1.ConnectionString := 'Provider=ProviderRef:Remote Server=ServerRef';
在程序设计阶段,它可以通过激活对象观察器中该属性栏,从允许的A D O 数据库连接中
选取。该属性值可以保存为文件以后使用,在以后使用时只需要在该属性栏中指明此文件名
就可以再次使用该值。该属性值也可以包含用户的身份和密码等信息,以实现自动登录的目
的。
A D O 的C o n n e c t i o n S t r i n g 的属性值支持下列四种参数:P r o v i d e r 、File name 、R e m o t e
P r o v i d e r 和Remote Server 。其他的变元(例如用户的身份和密码)将不被A D O 处理而只简单
地被传输。
• CommandTe x t 属性
C o m m a n d Te x t 是一个可以用来表达语句、数据表格名或者执行的存储过程,要为该属性
赋一个文本值,如下面的例子:
C o m m a n d Text := 'SELECT *FROM CustomerTa b l e ' ;
在TA D O D a t a S e t 组件的属性对话框中单击C o m m a n d Te x t 属性,就会弹出如图4 - 1 4 的对话
框,可以在其中设置该属性。
图4-14 设置CommandText 属性的对话框
• CommandTy p e 属性
C o m m a n d Ty p e 用于指明C o m m a n d Te x t 属性的类型,该属性的值应该和属性的值相一致,
例如C o m m a n d Te x t 属性是数据表格的名称,那么C o m m a n d Ty p e 属性的值就应该是c m d Table 或
c m d Ta b l e D i r e c t ,如果C o m m a n d Te x t 属性的值是一个S Q L 语句,C o m m a n d Ty p e 属性的值就应
该是c m d Te x t 。C o m m a n d Ty p e 属性的默认值是c m d U n k n o w n ,对于各种类型的命令都可以使用
该默认值,但是由于A D O 必须确定命令的类型,就会降低运行的速度。下面的例子演示了如
何为属性赋值:
C o m m a n d Type := cmdTe x t ;
C o m m a n d Text := 'SELECT *FROM CustomerTa b l e ' ;
• Connection 属性
第4 章数据访问组件105 下载ഊ使用Connection 属性来指明A D O 组件与ADO 数据库联系的方式。在程序设计阶段,从对
象观察器中的C o n n e c t i o n 属性栏的下拉列表中选择可能的TA D O C o n n e c t i o n 对象。当然,
C o n n e c t i o n 属性也可以在程序运行阶段设置。例如:
ADODataSet1.Connection := ADOConnection1;
2. TADODataSet 组件的方法
TADODataSet 组件的方法大多从TDataSet 处继承而来。例如用来移动数据指针的F i r s t 、
N e x t 、L a s t 和P r i o r 的方法,用来编辑数据记录的Insert 和E d i t 方法。在此不再赘述。
3. TADODataSet 组件的使用
TA D O D a t a S e t 组件使D e l p h i 的应用程序具有通过A D O 访问一个或多个数据表格的能力。
在A D O 数据集组件的C o m m a n d Te x t 属性中说明需要访问的数据表格名。TADODataSet 同样也
提供给应用程序执行操作的能力。
与数据库的联系可以通过指定A D O 数据集组件的C o n n e c t i o n S t r i n g 的属性值或者通过另外
一个TA D O C o n n e c t i o n 组件完成。
应用程序中访问和操作TA D O D a t a S e t 组件中的数据的方法与标准的基于B D E 的数据集组
件的方法一样。将A D O 数据集组件的D a t a S e t 属性设置为一个标准的T d a t a S o u r c e 组件。
T d a t a S o u r c e 这时就联系着A D O 数据集组件和数据控制组件。
TADODataSet 组件的方法基本与TDa t a S e t 组件一样,可以使用F i r s t 、N e x t 、L a s t 和P r i o r
来移动数据记录指针,使用Insert 和E d i t 方法来编辑数据记录。
106 Delphi 5 数据库开发技术
会出错的!!但在别的语言中比如VB就不错!!哪这Fields()后面的参数要怎么用呀!!
var
i:integer;
begin
if not adodataset1.Active then adodataset1.Active;
edit1.Text := '共有'+ inttostr(adodataset1.Recordset.RecordCount)+'行';
edit1.Text :='共分为'+ inttostr(adodataset1.Recordset.PageCount)+'页';
adodataset1.Recordset.MoveFirst;
for i:=1 to adodataset1.Recordset.RecordCount do
begin
edit1.Text:= edit1.text +' - ' + string(adodataset1.Recordset.Fields.Item['au_fname'].Value);
adodataset1.Recordset.MoveNext;
end;
end;以上我刚才测的输出例子.你说的ADODataSet1.Recordset.Fields(1)肯定要出错的。