Delphi3数据库编程中的查找字段

2008-04-09 04:17:19来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  在设计数据库时,我们尽量去掉一些冗余的数据字段。例如在职工信息库中,对于职工所在单位,我们仅保留单位编号,而具体的单位信息,则存放在单独的单位信息库中,这是符合关系数据库理论的规范化要求的。

  随之而来的问题是,在编辑职工信息时,大多数用户不愿意与单位编号打交道,而希望直接输入或选择单位名称,因为单位编号太不直观和容易出错。尽管用SQL语言,可以在Query控件中实现两个数据库的链接,但是比较麻烦,Delphi3提供了一种捷径,让用户在编辑职工信息库时,直接操作单位名称,从包含有所有单位名称的下拉式列表中进行选择,这就要用到非常实用的查找字段编程。

  在窗体中一次编辑一条记录和在DBGrid网格中一次编辑多条记录,查找字段的应用方法是迥然不同的,前者要用到TDBLookUpComboBox控件,而后者要用到表格的LookUp Field字段。

一、TDBlookUpComboBox控件的用法
  TDBLookUpComboBox控件可以同时与两个数据源相链接,一个是主数据源Datasource,另一个是二级数据源ListSource。在主数据源和二级数据源中,必须有意义完全相同的两个字段,称之为查找字段(或关键字段),分别设置为TDBLookUpComboBox的DataField和KeyField属性,ListField属性用于设定显示字段,显示字段来自于二级数据源ListSource。

  举例加以说明,职工信息库包括有职工编号、姓名、出生日期、性别、籍贯、单位编号等字段,单位信息库包括有单位编号、单位名称、负责人姓名、电话号码、传真号码、电子邮件地址等字段。在编辑职工信息时,用单位信息库中的单位名称代替某个职工的单位编号,需要在窗体中增加一个TDBLookUpComboBox控件对象,设置它的属性:

datafield=dwbh //职工信息库的单位编号字段 datasource=datasource1 //职工信息库数据源 keyfield=dwbh //单位信息库的单位编号字段 listsource=datasource2 //单位信息库数据源 listfield=dwmc //用于显示的单位库中的单位名称字段


  运行时界面如图一,可以用鼠标单击单位名称编辑框右边的下箭头,从激活的下拉式列表中进行选择。
lpydelphi200006100001.jpg
  图一


二、DBGrid中的查找字段
  在DBGrid中实现查找字段,需要提供一个二级数据表格(Table2),Table2指向单位信息库,同时要为主数据库表格Table1增加一个查找字段(LookUp Field)。设计的方法略为复杂一些。

   1、双击Table1控件,为Table1(职工信息库)增加所有字段,修改各个字段的显示标签,设置Table1DWBH.Visible=False,因为我们不需要显示单位编号。

   2、在Form1.Table1窗口,右键“呼”出快捷菜单,选择New Field为Table1增加一个查找字段Table1DWMC,如图二。

lpydelphi200006100002.jpg
  图二

   3、修改Table1DWMC.DisplayLabel=单位名称;

   运行界面如图三,可以用鼠标单击某个记录的单位名称字段,激活一个下拉式列表,从中进行选择。
lpydelphi200006100003.jpg

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:也谈为Delphi中数据库报表加网格

下一篇:在Delphi的DBGrid中插入其他可视组件