程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi3數據庫編程中的查找字段

Delphi3數據庫編程中的查找字段

編輯:Delphi

在設計數據庫時,我們盡量去掉一些冗余的數據字段。例如在職工信息庫中,對於職工所在單位,我們僅保留單位編號,而具體的單位信息,則存放在單獨的單位信息庫中,這是符合關系數據庫理論的規范化要求的。

隨之而來的問題是,在編輯職工信息時,大多數用戶不願意與單位編號打交道,而希望直接輸入或選擇單位名稱,因為單位編號太不直觀和容易出錯。盡管用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 //用於顯示的單位庫中的單位名稱字段

運行時界面如圖一,可以用鼠標單擊單位名稱編輯框右邊的下箭頭,從激活的下拉式列表中進行選擇。

圖一

二、DBGrid中的查找字段

在DBGrid中實現查找字段,需要提供一個二級數據表格(Table2),Table2指向單位信息庫,同時要為主數據庫表格Table1增加一個查找字段(LookUp Field)。設計的方法略為復雜一些。

1、雙擊Table1控件,為Table1(職工信息庫)增加所有字段,修改各個字段的顯示標簽,設置Table1DWBH.Visible=False,因為我們不需要顯示單位編號。

2、在Form1.Table1窗口,右鍵“呼”出快捷菜單,選擇New Field為Table1增加一個查找字段Table1DWMC,如圖二。

圖二

3、修改Table1DWMC.DisplayLabel=單位名稱;

運行界面如圖三,可以用鼠標單擊某個記錄的單位名稱字段,激活一個下拉式列表,從中進行選擇。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved