其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(二)[3]


发布日期:2021年01月16日
 
DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(二)[3]

CustNoDouble: Double;

CustNoInt: Integer;

CustNoString: String;

{在Edit中显示字段值}

EditText:=TableCompany;{类型相匹配不需要转换}

EditText:=TableCustNoAsString;{类型不匹配需要转换}

{将字段值赋给变量}

CustNoDouble:=TableCustNoValue;{类型相匹配不需要转换}

CustNoInt:=TableCustNoAsInteger;{类型不匹配需要转换}

CustNoString:=TableCustNoAsString;{类型不匹配需要转换}

设定字段对象的显示格式

我们即可以在设计阶段设定字段对象的显示格式也可以在运行过程中通过程序代码来设定字段对象的显示格式

在如图所示的窗体中再增加一个TaxRate字段并在程序设计过程中设定它的显示格式为%即设置TaxRate字段对象的DisplayFormat属性为% 若TaxRate的值为那么在网格部件中其显示的格式为%

在运行过程中我们通过程序代码来设定字段Phone的显示格式美国的电话表示形式与中国的表示形式不一样(如美国中国( 为此我们将phone 字段的值表示成中国式的形式具体方法是在 Object Inspector 中选取Tablephone对象并为此对象的OnGetText事件编写如下程序代码

TFormTablePhoneGetText(Sender:TField;

Text:OpenString;DisplayText:Boolean)

begin

If DisplayText then

begin

Text:=TablePhoneValue;

Delete(Text

Delete(Text

Insert(Text

Insert(Text

end;

end;

自定义字段以及计算字段对象的创建

有时候为了使应用程序完成所期望的工作我们要在数据库表现有字段的基础上增加一些自定义的字段这些字段并不是数据库表中实际存在的字段它们常常是根据数据库表中的其它的字段动态地计算出来的因而它们常常被称为计算字段

例如我们创建一个浏览ORDERSDB表中记录的应用如图所示

浏览ORDERSDB表中的记录

首先我们想在显示OREDRESDB表的网格中增加一个自定义的字段对象完成以下步骤

双击窗体中的Table打开字段编辑器Fields Editor

在Fields Editor窗口中单击鼠标右键选择New Fields菜单项

Delphi显示New Fields对话框选择Field Type列表框中的Currency 项并在Field Name文体框中输入Balance 这样我们自定义了一个 CurrencyField 类型的字段BalanceDelphi会自动地填入相应的字段对象名

单击Ok按钮关闭New Field对话框当Fields Editor 窗口重新出现时 注意Balance已经出现在Fields列表框中

在Fields Editor 窗口中单击鼠标右键 并选择 Add Fields 菜单项打开AddFields对话框

从Available Fields 列表框中 按住 Ctrl 键并单击鼠标左键选择字段

OrderNoCustNoSaleDateShipDataItemsTotalAmountpaid以及Balance

单击OK按钮关闭Add Fields对话框得到Fields Editor窗口

双击Fields Editor的控制盒关闭字段编辑器Fields Editor

至此我们已经为Table创建了一个自定义的字段对象Balance下面我们把Balance字段设置成计算字段对象使其显示每一个客户的现金余额即此字段的值是由ORDERS DB表中ItemsTotal和Amountpaid字段的值计算而来的为使应用程序实现这种计算功能完成以下步骤

在Object Inspector中选择自定义字段对象TableBalance修改其 Calculated属性值为True即定义Balance字段为计算字段

在Object Inspector窗口中选择Table部件的Event页

双击OnCalcField事件为TableOnCalcField编写事件处理过程如下

procedure TFormTableOnCalcFields(DataSet:TDataSet)

begin

TableBalanceValue:=TableItemsTotalValueTableAmountPaidValue;

end;

浏览ORDERSDB 中的记录

查询数据库中的记录

数据库中储存着大量的数据信息如何充分有效地查询其中的数据对用户而言是至关重要的如果想查询数据库首先要确定要查询的字段要么是数据库表中的关键字段要么是辅助索引如果我们查询的是Paradox或dBASE数据库系统中的表这是唯一的选择

一般而言查询数据库中的记录的方法有两种Gotokey方法和Findkey方法两种方法十分相似主要区别在于我们如何指定查找值这两种方法的思想是在指定列(字段)中寻找指定的查找值如果在数据库表中找到了这个值表中的记录指针便指向该记录这样我们便查询到了我们需要的记录进而可以访问找到的记录中的各项数据

使用GotoKey方法查找数据记录

使用Gotokey方法查询数据库中的记录的具体步骤如下

确保要查找的字段是关键字或已经为它定义了辅助索引并保证TTable部件的属性列表中有关键字段名或辅助索引名

通过调用GotoKey方法把要查找的TTable部件置成查找模式

把查找值送进被查找的Field的查找缓沖区

调用TTable部件的GotoKey方法并测试它的返回值判断查找是否成功

如果查找成功GotoKey返回一个True值并且表中的记录指针指向找到的记录如果查找失败GotoKey返回False表中的记录指针不发生变化

在这里要注意的是如何给Field的查找缓沖区赋值我们知道字段对象是不可见的对象它们没有自己的名字在大多数情况下要使用TTable部件的FieldByName 方法到字段列表中查找字段对象以便为它赋值但字段缓沖区也是没有名字的当TTable部件处于查找模式时我们只要把查找值赋给字段对象的AsString属性就可以了AsString的作用不只是它的表面意思它是一个转换属性任何赋给字段对象的AsString属性的字符串都将转换成该字段对象应于数据库表中的字段的数据类型当然AsString不能将查找值转换成BLOBBytesMemo和Graphic类型的数据用户一般也不会查找这种数据类型的字段

[] [] [] []

               

上一篇:DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(二)[4]

下一篇:DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(二)[2]