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. ant copy file

    <project name="selftask" default="docopy" basedir="."> <descr ...

  2. mvc3升级mvc4的方法记录.

    手工升级ASP.NET MVC 3项目: 一.安装ASP.NET MVC 4 二.升级ASP.NET MVC版本配置信息: 1:替换项目 Web.config 中的 System.Web.Mvc, V ...

  3. Markdown资源 markd

    markdown是将某些格式的文本,翻译成HTML的一个库,非常精妙! https://www.npmjs.com/package/markedhttps://github.com/adam-p/ma ...

  4. [LeetCode]题解(python):120 Triangle

    题目来源 https://leetcode.com/problems/triangle/ Given a triangle, find the minimum path sum from top to ...

  5. angularJs之$watch监听属性变化访问后台

  6. thinkphp多语言设置

    thinkphp多语言设置有点'高大上',为什么说它有点'高大上'呢?因为本人设置了好久才弄好,而本人之所以弄了好久的原因,竟然是因为'开启语言设置必须得先开启初始化系统的行为类',所以,在这里,因为 ...

  7. form submit时将__VIEWSTATE和__VIEWSTATEGENERATOR一起post到另外的页面,出现验证视图状态 MAC 失败。

    错误信息: 验证视图状态 MAC 失败.如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法.不能在群集中使用 AutoGenerate. 原因分析: F ...

  8. 部署移动BI必须要考虑的五大因素

    随着大屏智能手机和平板电脑的普及,商业智能分析应用程序也需要移动化.由于用户并不会长时间在办公桌前工作.在新的设备以及新的用户的共同促进下,移动BI即将成为主流. 但是,所有人都应该清楚这样一个事实: ...

  9. 一种构造WEB服务器端recv和send接口阻塞现象的方法

    send阻塞 socket recv send接口阻塞,会导致服务器端不在响应客户端任何请求,所以一般情况, 会将socket设置为非阻塞状态, 但是有些场景,例如ssl_accept就需要使用阻塞的 ...

  10. W3cshool之JavaScript基础

        1.  JavaScript 对大小写敏感 名为 "myfunction"的函数和名为 "myFunction" 的函数是两个不同的函数,同样,变量 & ...