TTable 是 TDataSet 的派生类,它是基于 BDE 数据库引擎的数据集组件,也是一个较简单的数据组件,可以直接从数据库中获取数据表的数据,只需设置连接的数据库属性(Database) 和所要获取的数据表名称(Tablename),所以对于简单的应用来说,使用 TTable 是一种快速的方法。

TTable 常用属性

Filter 属性: 可以进行简单的数据过滤(不要求有索引),也可进行复杂的动态数据过滤,只要在对象的 Filter 中输入合适的“过滤条件”,将对象的 Filtered 属性设为 True。

Delphi 提供了属性 Filter, Filtered, Filteroptions 和事件 OnFilterrecord 来实现过滤器的功能。

  • Filter:用于输入过滤条件,其值为字符串类型,可以是个条件表达式。
  • Filtered:默认为 False,表示过滤器关闭,如果设置为 True,就会执行过滤操作,引发 OnFilterrecord事件。
  • Filteroptions:用于设置过滤器的两个参数 FoCaseinsensitive 和 Fonopartialcompare。FoCaseinsensitive 表示过滤器对大小写是否敏感。Fonopartialcompare 表示过滤器是否支持通配符(*)所表示的部分匹配。
procedure TForm1.Button3Click(Sender: TObject);
begin
Table1.Filtered:=True;
Table1.Filter:='语文成绩>60';
end;

TTable 常用方法

Locate:是TTable 最常用的数据搜索方法之一,可以根据一个或者几个字段的值查找并定位记录。返回结果为 False 说明没有找到匹配记录,为 True 说明找到匹配记录。

方法声明

function TBDEDataSet.Locate(const KeyFields: string;
const KeyValues: Variant; Options: TLocateOptions): Boolean;
KeyFields:要搜索的字段名称
KeyValues:字段要满足的值
Options:要搜索的选项,是集合类型。LoPartialkey 表示是否使用通配符, LoCaseInsensitive 表示是否大小写敏感.
// 单一字段搜索
procedure TForm1.Button1Click(Sender: TObject);
begin
if Table1.Locate(ComboBox1.Text, Edit1.Text, [loCaseInsensitive]) then
ShowMessage('找到记录')
else
ShowMessage('找不到记录');
end; //多个字段搜索
procedure TForm1.Button2Click(Sender: TObject);
begin
if Table1.Locate(ComboBox1.Text+';'+ComboBox2.Text, VararrayOf([Edit1.Text, Edit2.Text]), [loCaseInsensitive]) then
ShowMessage('找到记录')
else
ShowMessage('找不到记录');
end;

注:查询多个字段时,需要使用";" 连接字段。

Lookup:也是TTable 最常用的数据搜索方法之一,只需指定所要搜索的字段名称、搜索值及要返回的字段即可。数据搜索成功会以变量的数据类型返回指定的字段值,否则返回 Null 值。与 Locate 最大的不同在于  Lookup 并不会改变目前的数据指针。

方法声明

function TBDEDataSet.Lookup(const KeyFields: string; const KeyValues: Variant;
const ResultFields: string): Variant;
KeyFields:要搜索的字段名称
KeyValues:字段要满足的值
ResultFields:要返回的字段

当用户直接使用 TTable 组件时,该组件使用默认的字段设置。若要改变 TTable 组件的字段设置,可以通过字段编辑器实现。在窗体上双击 TTable 组件后,便进入字段编辑器对这些字段分别进行编辑。

选择字段编辑器中字段的常用属性

Alignment:字段数据显示的对齐方式

DisplayFormat:设置字段内的数据表示方式,若是数字类型的数据需要加上千元分隔符,则属性值为#,###

DisplayLabel:设置该字段的标题名称,默认为该字段名称,当设置好特定的字段名称后,所有使用该数据集的组件也会直接采用此新设的字段名称

EditMask:当进入编辑模式时,设置该字段的编辑屏蔽,也就是可以限制用户输入的数据格式或数据内容

FieldName:设置该字段和数据表连接的字段,也就是指定该字段从数据表中哪个字段获取数据

ReadOnly:分别设置每个字段的只读与否

Visible:设置字段的显示与否,若使用 TDBGrid 之类的控制组件相连时,则设置为 False 的字段将不会出现在 TDBGrid 组件的显示画面上。

字段编辑器特殊功能

字段编辑器的快速拖动

  字段编辑器的快速拖曳可直接从字段编辑器中拖曳字段到窗体上使用,Delphi 会自动提供设置好的 TDBEdit 组件来显示这些拖曳的字段,不需要再设置如 DataField 和 DataSource 之类的属性, TDataSource 组件在拖曵中也一并增加在窗体中。

字段编辑器的计算字段

  在字段编辑中除了对现有的字段进行编辑外,也可以根据现有的字段生成具有运算效果的新字段,这些字段能处理如汇总或几个字段值相加的效果

字符编辑器的引用字段

  除了计算字段外, TTable 组件的字段类型还支持引用 类型,也就是一个数据表中的字段数据可以引用另外一个数据表中的某个字段。因为引用字段必须引用另外一个数据表,所以在设置上与计算字段有些差别,其中主要的差别就在于引用数据表的设置,除了设置引用数据表外还必须指定两者之间的对应关系,这些设置都是在选择字段类型为 Lookup 完成的。

引用字段功能

DataSet:设置所要引用的数据集

Lookup Keys:引用数据集中被引用的字段,也就是根据这个数据字段和原本的数据集创建对应的关系

Result Field:对应关系创建后,要从引用数据集中显示的数据字段

Key Fields:原来的数据集中用来和引用数据集创建对应关系的字段,所以该字段必须和 Lookup Keys 有对应关系

当添加的字段为 Calculated (计算字段)时,必须利用 onCalcFields事件处理新字段的计算问题。

procedure TForm1.Table1CalcFields(DataSet: TDataSet);
var
sum: Integer;
begin
sum:=DataSet.FieldByName('yuwenscore').AsInteger + DataSet.FieldByName('mathscore').AsInteger;
DataSet.FieldByName('sum').AsInteger := sum ;
end;

Delphi TTable 组件的更多相关文章

  1. Delphi的组件读写机制

    Delphi的组件读写机制(一) 一.流式对象(Stream)和读写对象(Filer)的介绍在面向对象程序设计中,对象式数据管理占有很重要的地位.在Delphi中,对对象式数据管理的支持方式是其一大特 ...

  2. Delphi IdHttp组件+IdHttpServer组件实现文件下载服务

     http://blog.csdn.net/xxkku521/article/details/16864759 Delphi IdHttp组件+IdHttpServer组件实现文件下载服务 2013- ...

  3. Delphi TDatabase 组件

    TDatabase 组件是一个能与远程数据库通过 BDE 建立连接的组件,可使本地端的程序获取远程的数据. 通过 TDatabase 组件的使用,可以减少与远程数据库连接的窗口,当远程数据库的设置变动 ...

  4. Delphi 第三方组件

    TMS Component Pack v7.0.0.0 TMS Component Pack 版本为Delphi和C++ Builder提供了超过350个VCL组件,用以创建功能丰富的.现代的和原生W ...

  5. Delphi第三方组件安装DCU.PAS.DPK.BPL.ActiveX控件

    不是由BORLAND提供的组件叫第三方组件:安装方法:南山古桃(nsgtao)首先提醒一下:最好把要安装的文件先复制到Delphi安装目录的Lib目录下再执行下面的操作!就目前常见的各种形式的组件的安 ...

  6. Delphi xe7组件和控件的安装方法

    暂时我所遇到的所有控件安装方法大体与下面两种相同. 若有不同大家提出来,一起想办法解决. .dproj格式的组件安装方法: raise组件 安装详细步骤如下: 一.设置搜索路径1. 将本包中的文件连同 ...

  7. delphi TAdoQuery组件的close方法可能导致”列名无效“错误

    1,故障现象 一次程序运行,出现如下错误: 对应代码如下: 2,故障分析 Query_alert_2的语句在查询分析器中单独执行是正常的.排除语句出错. 如果注解掉Query_alert_1,则错误变 ...

  8. delphi TTreeView组件遍历磁盘目录

    TTreeView组件遍历磁盘目录 实例说明 TTreeView组件是一个以分枝结构或者说树状结构显示数据的组件,以该组件显示数据具有较好的等级关系和逻辑层次,并且易于操作.在组件中显示的数据结构与系 ...

  9. CSDN论坛 > Delphi > VCL组件开发及应用 DBLookupComboBox用法

    (1)DataSource属性    该属性用于连接要编辑数据的主表数据源(2)DataField属性    该属性用于指定要编辑的数据字段名(3)ListSource属性    .    该属性用于 ...

随机推荐

  1. Flink - Checkpoint

    Flink在流上最大的特点,就是引入全局snapshot,   CheckpointCoordinator 做snapshot的核心组件为, CheckpointCoordinator /** * T ...

  2. jquery实现nav的下拉

    <script type="text/javascript"> $(function(){ //tab_flag 根据此标记判断是否由父级nav指向了nav_list ...

  3. ios计算内容的高度 (含7.0前及以后的版本的用法)

    + (CGFloat)heightForContent:(MyMsgTextModel *)content withWidth:(CGFloat)width { CGSize contentSize; ...

  4. win7下VS2015+opencv3.1.0配置

    由于opencv与vs的适配版本不同,本人在官网下载opencv3.1.0,其可以和VS2013.VS2015适配,文中以VS2015为例 opencv2.4.13-----vc11;vc12 ope ...

  5. CentOS6.0(64位)安装Apache+PHP+Mysql教程,安装Magento(解决DOM,Mcrypt,GD问题)完整教程

    CentOS6.0(64位)安装Apache+PHP+Mysql教程,安装Magento(解决DOM,Mcrypt,GD问题)完整教程 0   Posted by :小黑 On : 2012 年 9 ...

  6. ios编程之网络请求

    网络请求有GET请求和POST请求,get和post实现的时候可以选择同步或者异步实现.看一个请求是GET还是POST就看网址后面有没有携带请求体. GET与POST 区别  1.get请求 请求的网 ...

  7. C# gridControl 部分设置

    1.页数导航状态栏 2.列表行号栏 3.列标题显示隐藏 4.Button设置

  8. copy file to docker、

    Docker是个Linux Container管理软件. 今天我们来讲解一下从主机复制文件到Docker的几种方法. 在分享之前, 我们看看Docker社区对这个问题的需求是有多么强(ju)烈(jin ...

  9. IUS

    后端提取的sdf中可能是有negative timing 在interconnect上的,可能的原因是crosstalk之类的问题导致. negative timing在FF,clock的delay超 ...

  10. Java运行环境的配置

    Make sure you do not use the trailing semicolon: This will not work: set JAVA_HOME=C:\Program Files ...