後一頁 前一頁 回目錄 回首頁 |
數據瀏覽部件主要用於顯示和編輯資料庫表中的數據,因而它們又常常被稱為數據控制部件或數據明了部件,它們在部件選擇板中的DataControls頁上,圖16.1顯示的是DataControls頁上的全部數據瀏覽部件,其中的TDBGrid部件用於全螢幕顯示和編輯資料庫表中的記錄,TDBNavigator用於在數據記錄之間導航、插入記錄、解除記錄、投寄被修改的記錄。 圖16.1 DataControls部件頁上的部件 在表16.1中,我們對DataControls部件上的各個數據瀏覽部件的一些特性進行描述: 表16.1 各數據瀏覽部件概述 ──────────────────────────────── 部 件 名 稱 特 性 描 述 ———————————————————————————————— TDBGrid 用網格的形式顯示資料庫表中的記錄資訊,網格中的 各列可以在設計階段使用欄位編輯器建立也可以在運 行過程中用程式設定 ———————————————————————————————— TDBNavigator 它提供了一群群組按鈕用於資料庫表中的導航,編輯修改、 插入、解除記錄以及刷新數據的顯示,TDBNavigator中 包含的控制按鈕在設計階段可以進行選擇 ———————————————————————————————— TDBText 用於顯示資料庫表中目前記錄的欄位值 ———————————————————————————————— TDBEdit 用於顯示和編輯資料庫表中目前記錄指定的欄位值 ———————————————————————————————— TDBMemo 用於顯示資料庫表中的備註型欄位,備註型欄位中可 以包含多行字元甚至可以是BLOB(大二進制物件)數據 ———————————————————————————————— TDBImage 用於顯示資料庫表中的圖像欄位和BLOB數據 ———————————————————————————————— TDBListBox 當用戶編輯修改表中目前記錄的某個欄位時,該部件 是一個包含多個選擇項的列示方塊,用戶可以從中選擇 一個項做為欄位的值 ———————————————————————————————— TDBComboBOx 該部件是一個群群組合框,當用戶編輯修改表中目前記錄 的一個指定欄位時,可以直接在該部件中輸入欄位值 也可以按一下該部件從下拉式列示方塊中選擇一個欄位值 ———————————————————————————————— TDBCheck 用於顯示資料庫中的欄位資訊的檢查框,當表中欄位 的值與該檢查框的ValueChecked屬性值相匹配時,該 檢查框被選中 ———————————————————————————————— TDBReadioGroup 使用該部件可以為用戶提供一群群組選擇項,但用戶只能 從中選擇一個可選項 ———————————————————————————————— TDBLookapList 當用戶要編輯修改資料庫表目前記錄的指定欄位時, 使用該部件提供多個可選項,這多個可選項是從相關 的其他表中讀取的,且以列示方塊的形式提供給用戶 ———————————————————————————————— TDBLookupCombo 該部件結合了TDBEdit部件和TDBComboBox部件的功能, 用戶可以直接向該部件中輸入欄位值,也可以從下拉 式列示方塊中選擇一個可選項,只是下拉式列示方塊中的 可選項是從相關的其他的資料庫表中讀取來的。 ────────────────────────────────
16.1 數據瀏覽部件的基本特性
大多數的數據瀏覽部件是從標準部件中演變過來的,它們具有一些相似的特性,如TDBGrid部件和TStringGrid部件,TDBEdit和TEdit部件,TDBListBox和TListBox等等,只是數據瀏覽部件是專門用於顯示和編輯資料庫中記錄的欄位資訊而已。它們的使用方法以及屬性有很大的不同。在程式設計階段,當數據瀏覽部件通過TDatasource部件和TTable部件連接到一個物理資料庫時,便可在其中觀看到資料庫中的數據資訊,也就是說在程式設計階段便可以看到應用程式執行之後的效果,這種特性給我們修改應用程式帶來了方便。 數據瀏覽部件是通過TDatasource部件連接到TTable部件中具體的欄位部件的,因而數據控制部件具有一些共同的屬性,用於連接TDatasource部件和TField部件。 Datasource屬性:敘述數據瀏覽部件連接的數據源部件TDatasource,數據瀏覽部件是從TDatasource部件中獲取數據的。 DataField屬性:敘述數據瀏覽部件對應資料庫表中實際的欄位標簽。該屬性的值其實是TDataSource連接的數據集部件TTable或TQuery部件中的欄位部件的名字。 因此要建立一個應用程式顯示和編輯資料庫表中的記錄,一般要在應用窗體中放置一個數據集部件(TTable部件或TQuery部件)和至少一個數據源部件TDataSource部件以及多個數據瀏覽部件。其建立的一般步驟如下:
1.在窗體中放置上述所說的部件並連接數據集部件、數據源部件。 2.為各數據瀏覽部件設定DataSource屬性值為窗休中存在的TDataSource部件的名字。 3.設定各數據瀏覽部件的DataField屬性為數據集部件TTable或TQuery部件中存在的 欄位部件的名字。
在這裏需要注意的是:TDBGrid部件和TDBNavigator部件是自動地存取數據集部件中所有可以存取的欄位部件的,因此它們是沒有DataField屬性的,對於這些部件可以跳過第3步。 Enabled屬性:當數據瀏覽部件連接到數據集部件時,它的Enabled屬性決定了數據瀏覽部件能否接受來自滑鼠、鍵盤和定時器事件的訊息。當Enabled屬性值為False時,數據瀏覽部件將變為無效而不能接受外界的資訊。當與數據瀏覽部件相連的TDataSource部件的Enabled屬性為False時或與數據源部件TDataSource部件相連的數據集部件TTable或TQuery部件的Active屬性為False時,數據瀏覽部件也會隨之而變為無效。 ReadOnly屬性:大多數的數據瀏覽部件能夠用來編輯修改與之對應的欄位,因而有ReadOnly屬性,該屬性用來控制是否可以在數據瀏覽中編輯修改欄位的值。缺省情況下,該屬性的值為False,也就是說用戶可以在其中編輯修改欄位的值。 當然用戶要想通過數據瀏覽部件編輯修改資料庫表中的記錄欄位時,還要受到其它因素的制約。除了數據瀏覽部件本身的ReadOnly屬性設定為False外,還要設定其相應的欄位部件和數據集部件的CanModify屬性True性;設定TDataSource部件的AutoEdit屬性為True,如果資料庫表是SQL資料庫伺服器中的資料庫表,用戶必須要具有讀寫資料庫的權限等。當然在實際的程式設計過程中並沒有這樣繁瑣,因為很多屬性的缺省值都是允許用戶修改表中的記錄的。 除了TDBGrid部件之外,如果通過一個數據瀏覽部件修改欄位值,那麼當遊標(或焦點)離開數據瀏覽部件時,數據瀏覽部件中被修改的值就會自動地被寫回到磁碟資料庫中。若在焦點沒有離開數據瀏覽部件之前,按ESC鍵,那麼Delphi會自動地放棄其對欄位值的修改。在TDBGrid部件中修改表中的記錄時,只有當焦點離開目前的記錄時,即記錄指標移到其他記錄上時,用戶對目前記錄的修改會被寫回磁碟上的資料庫表,在焦點沒有離開目前記錄時,按ESC鍵,Delphi會自動放棄對目前記錄的修改。 16.2 使用TDBText部件顯示表中的數據 TDBText部件是一個唯讀的數據瀏覽部件,它類似於TLabel部件。只是TDBText 部件用於顯示資料庫表中記錄的指定欄位的值。因為TDBText部件顯示的是表中目前記錄的指定的欄位的值,因而它顯示的內容也是動態的,在其中顯示的內容隨著記錄指標的移動而變化。用TDBText部件顯示Customer.DB表中的Company欄位資訊時可用如圖16.2所示的窗體來實現。 其中各部件的屬性設定如表16.2所示 表16.2 表中各部件的屬性設定 ─────────────────── 屬 性 屬 性 值 ——————————————————— Table1.DatabaseName DEMOS Table1.TableName Customer.DB Datasource1.DataSet Table1 DBText.DataSource DataSource1 DBText.DBField Company ─────────────────── 16.3 使用TDBEdit部件顯示和編輯表中的數據 TDBEdit部件是專門用於顯示編輯資料庫表中目前記錄的各個欄位值的數據瀏覽部件,在應用程式中,我們常常用一個TDBEdit部件來對應表中一個欄位,通過設定TDBEdit部件的DataSource、DataField屬性便可以為TDBEdit部件指定表中相應的欄位。如果用戶希望能通過TDBEdit部件編輯修改資料庫表中的欄位值,還要設定TDBEdit部件的ReadOnly屬性為False,設定與TDBEdit相連的數據源部件TdataSource部件的AutoEdit屬性為True以及確保與TDataSource部件相連的數據集部件TTable或TQuery部件處於編輯狀態,即設定它們的CanModify屬性為True。 例如,在圖16.3所示的窗體中,使用多個TDBEdit部件顯示和編輯Customer.DB表中目前記錄的各個欄位。窗體中各部件的屬性如表16.3所示。 圖16.3 用TDBEdit部件顯示和編輯表中的數據 表16.3 窗體中各部件的屬性 ──────────────────── 屬 性 屬 性 值 ———————————————————— Table1.DatabaseName DEMOS Table1.TableName Customer.DB Datasource.DataSet Table1 DataSource.AutoEdit True DBNavigator.DataSource DataSource1 ──────────────────── 窗體中其它部件都是TLabel部件和TDBEdit部件,TLabel部件用於顯示表中各欄位的名字,TDBEdit部件對應表中各個欄位。程式執行之後如圖16.4所示。用戶可以在其中任何一個TDBEdit部件中修改其中的欄位值。 用TDBEdit部件顯示和修改表中的數據 窗體中還使用了一個TDBNavigator部件,使用它的目的是在表中移動記錄指標,還可以進行修改、插入、解除記錄等操作,具體的使用和操作參看 16.5 TDBNaigator部件的使用一節。 16.4 用TDBGrid部件顯示和編輯表中的數據 TDBGrid部件和TDBEdit部件一樣,它們是專門用來顯示和編輯資料庫表中的數據的,但TDBGrid部件的功能更強大一些,它可以以網格的形式顯示資料庫表中全部記錄的所有欄位資訊。 用TDBGrid顯示資料庫表中的記錄資訊 |
後一頁 前一頁 回目錄 回首頁 |