Delphi TTable 组件
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 组件的更多相关文章
- Delphi的组件读写机制
Delphi的组件读写机制(一) 一.流式对象(Stream)和读写对象(Filer)的介绍在面向对象程序设计中,对象式数据管理占有很重要的地位.在Delphi中,对对象式数据管理的支持方式是其一大特 ...
- Delphi IdHttp组件+IdHttpServer组件实现文件下载服务
http://blog.csdn.net/xxkku521/article/details/16864759 Delphi IdHttp组件+IdHttpServer组件实现文件下载服务 2013- ...
- Delphi TDatabase 组件
TDatabase 组件是一个能与远程数据库通过 BDE 建立连接的组件,可使本地端的程序获取远程的数据. 通过 TDatabase 组件的使用,可以减少与远程数据库连接的窗口,当远程数据库的设置变动 ...
- Delphi 第三方组件
TMS Component Pack v7.0.0.0 TMS Component Pack 版本为Delphi和C++ Builder提供了超过350个VCL组件,用以创建功能丰富的.现代的和原生W ...
- Delphi第三方组件安装DCU.PAS.DPK.BPL.ActiveX控件
不是由BORLAND提供的组件叫第三方组件:安装方法:南山古桃(nsgtao)首先提醒一下:最好把要安装的文件先复制到Delphi安装目录的Lib目录下再执行下面的操作!就目前常见的各种形式的组件的安 ...
- Delphi xe7组件和控件的安装方法
暂时我所遇到的所有控件安装方法大体与下面两种相同. 若有不同大家提出来,一起想办法解决. .dproj格式的组件安装方法: raise组件 安装详细步骤如下: 一.设置搜索路径1. 将本包中的文件连同 ...
- delphi TAdoQuery组件的close方法可能导致”列名无效“错误
1,故障现象 一次程序运行,出现如下错误: 对应代码如下: 2,故障分析 Query_alert_2的语句在查询分析器中单独执行是正常的.排除语句出错. 如果注解掉Query_alert_1,则错误变 ...
- delphi TTreeView组件遍历磁盘目录
TTreeView组件遍历磁盘目录 实例说明 TTreeView组件是一个以分枝结构或者说树状结构显示数据的组件,以该组件显示数据具有较好的等级关系和逻辑层次,并且易于操作.在组件中显示的数据结构与系 ...
- CSDN论坛 > Delphi > VCL组件开发及应用 DBLookupComboBox用法
(1)DataSource属性 该属性用于连接要编辑数据的主表数据源(2)DataField属性 该属性用于指定要编辑的数据字段名(3)ListSource属性 . 该属性用于 ...
随机推荐
- iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案—scrollIntoView()
问题描述 iOS系统下,移动web页面,inpu获取焦点弹出系统虚拟键盘时,偶尔会出现挡住input的情况,尽管概率不大,但是十分影响用户体验. 问题重现 原始页面:页面中有header.main.f ...
- struts2:数据校验,通过XWork校验框架实现(validation.xml)
根据输入校验的处理场所的不同,可以将输入校验分为客户端校验和服务器端校验两种.服务器端验证目前有两种方式: 第一种: 参考:struts2:数据校验,通过Action中的validate()方法实现校 ...
- 盒模型中--border
三要素:宽border-width,形状border-style,颜色border-color <style> div{ width:300px; height:300px; backgr ...
- Android ListView 子控件点击事件
android:descendantFocusability beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants:viewgroup只 ...
- synchronized同步块和volatile同步变量
Java语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量.这两种机制的提出都是为了实现代码线程的安全性.其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而 ...
- RDIFramework.NET ━ 9.8 用户权限管理 ━ Web部分
RDIFramework.NET ━ .NET快速信息化系统开发框架 9.8 用户权限管理 -Web部分 在实际应用中我们会发现,权限控制会经常变动,如:需要调整角色的分配,需要收回与授予某些角色.用 ...
- 九步轻松实现SVN创建管理项目
本节向大家描述一下在Windows上使用Subversion中如何使用SVN创建管理项目,在这里和大家分享一下,欢迎大家一起来学习在 使用SVN创建管理项目的方法.首先看一下SVN介绍. Subver ...
- bootstrap入门-3.响应式原理
Bootstrap网格系统(Grid System) 响应式网格系统随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列. 1 1 1 1 1 1 1 1 1 1 1 1 4 4 4 ...
- Design and Analysis of Algorithms_Introduction
I collect and make up this pseudocode from the book: <<Introduction to the Design and Analysis ...
- html5,进度条
<form action="" id="myform"> <progress value="20" max= ...