delphi 辨析 Field、FieldDef、Fields、FieldDefs、FieldList、FieldDefList


本文整理自网络,侵删。

 1、Fields 是 Field 的集合, 它们主要用于运行时对字段元数据和字段值的访问.

2、FieldDefs 是 FieldDef 的集合, 它们主要用于构建数据集(表)和对字段元数据的访问.

3、FieldList 和 FieldDefList 分别是访问 Field 和 FieldDef 的快捷列表; 主要使用其 FieldByName、Find 方法和默认的数组属性访问数据; 它们是只读的.

4、通过 Fields、FieldList、Field 可以得到更多信息, 但必须是在数据集打开的情况下;
通过 FieldDefs、FieldDefList、FieldDef 只能获取定义时的信息, 但即使在数据集关闭时也能使用.

5、顾名思义 FieldDef 是用于定义表的, 但通过 Field 也可以定义表;
用 FieldDef 定义表很方便, 用 Field 可以定义一些更复杂的表;
每个 FieldDef 都会对应一个 Field, 但一个 Field 不一定有 FieldDef 对应;
程序运行后 FieldDef 不能再改变, 而 Field 与 Fields 则可以动态改变或增减.

设计时两者是结合使用的.

  下面是通过三种方法动态建表的代码:

//使用 TFieldDef 建表:  
begin 
 with  ClientDataSet1.FieldDefs do 
 begin 
  Add('Name' , ftString, 12,  True); { True 表示是必填字段 } 
  Add('Age', ftInteger); 
 end; 
  ClientDataSet1.CreateDataSet; 
end; 
 
//使用 TField(这里是用其子类)建表: 
begin  
 with TStringField.Create(Self) do 
 begin 
  FieldName :=  'Name'; 
  Size := 12; 
  Required := True; { 必填字段 } 
  DataSet  := ClientDataSet1; 
 end; 
 with TIntegerField.Create(Self) do 
  begin 
  FieldName := 'Age'; 
  DataSet := ClientDataSet1; 
  end; 
 ClientDataSet1.CreateDataSet; 
end; 
 
//混合使用(这好像就是设计时的情形): 
var 
 F: TIntegerField; 
begin 
 with  ClientDataSet1.FieldDefs.AddFieldDef do 
 begin 
  Name := 'Name';  
  DataType := ftString; 
  Size := 12; 
  Required := True; 
  CreateField(ClientDataSet1); 
 end; 
 with  ClientDataSet1.FieldDefs.AddFieldDef do 
 begin 
  Name := 'Age'; 
  DataType := ftInteger; 
  { 指定最大值和最小值 } 
  F :=  CreateField(ClientDataSet1) as TIntegerField; 
  F.MinValue := 0; 
  F.MaxValue := 150; 
 end; 
 ClientDataSet1.CreateDataSet; 
end; 

相关阅读 >>

Delphi debug模式下可以但是release模式下报错原因之一

Delphi parent属性的另类用法

Delphi fmx 把内容复制到粘贴板上支持跨平台

Delphi 主程序与dll之间的全局变量问题

Delphi xe6 使用intent启动活动并在android应用程序中获取返回值的示例

isnumeric 判断字符串是否为数字

Delphi 获取内网所有ip地址

Delphi xe5 android 发短信以及目录

Delphi xe5 android 调用手机震动(通过jobject测试是否支持震动)

Delphi 自定义消息拦截

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...