13.3 Delphi數據庫的體系結構
Delphi使用可視化的部件創建數據庫應用,跟創建其它的非數據庫應用程序一樣,數據庫部件都具備一定的屬性,程序設計人員可以在設計過程中設置部件的多種屬性,也可以在程序運行過程中通過程序來設置部件的各種屬性。
在Delphi部件板上有兩頁數據庫部件用於開發數據庫應用程序:
數據訪問部件頁:該頁上的部件主要用於說明有關的數據庫的信息,如應用程序要訪問(連接)的數據庫,要訪問數據庫中的具體的數據庫表,以及要訪問表中哪些字段等,在實際的開發應用中常用的部件有TDataSource、TTable、TQuery等。
數據控制部件頁:該頁上的部件主要用於顯示浏覽數據庫中的數據信息,為用戶提供了一個可視化的界面,常用的部件有:TDBGrid、TDBEdit、TDBCheck等,可以讓用戶對數據庫中的信息進行有效的浏覽、編輯、插入、刪除等操作。
TTable、TQuery、TStoredproc部件負責與實際的數據庫表聯系,並從中獲取數據信息,因而它們又常常被稱為數據集部件,它們在程序設計過程中是可見的,但在程序運行時是不可見的,它們通過 BDE 為應用程序提供與數據庫的連接, 數據控制部件通過TDataSource部件與數據集部件相連,為用戶提供一個可視化的界面,並在其中顯示數據庫中的數據信息。
13.3.1 數據訪問部件
數據訪問部件頁上提供了一組數據訪問部件用來訪問數據庫中的數據。
圖13.3 數據訪問頁上的數據訪問部件
當要創建一個數據庫應用時,首先在窗體中選擇一個數據訪問部件,然後為數據訪問部件設置有關的屬性,說明要訪問的數據庫、數據表以及表中的記錄等,數據訪問部件為數據控制部件與數據源建立一條通道。數據訪問部件在程序運行時是不可見的。下表列出了數據訪問頁上的數據訪問部件以及它們的主要用途:
表13.4 數據訪問部件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
部件名稱 主 要 用 途
────────────────────────────
作為數據集部件TTable、TQuery、StoredProc組
TDataSource 件與數據浏覽件TDBGrid、TDBEdit之間傳送數據
的通道。
────────────────────────────
它是存取磁盤上數據庫表的媒介,它通過BDE存
TTable 取數據庫表中的數據,TTable再與TDataSource
進行“對話”,使得數據浏覽部件能夠有效地從
TTable中訪問數據並能顯示和編輯其中的數據。
────────────────────────────
它利用SQL語言訪問磁盤上數據庫表中的數據,
TQuery 並與TDataSource“對話”,實現數據浏覽部件
對數據庫的訪問。
────────────────────────────
TStoredProc 在應用程序中,它主要用來訪問遠程服務器中的
存貯過程
────────────────────────────
當應用程序要登錄到一個遠程服務器上的數據庫
TDatabase 時,可以用該部件來建立應用程序與數據庫永久
性的連接。
────────────────────────────
TBatchMove 用於復制數據庫表的結構或表中的記錄。
────────────────────────────
TReport 用於創建數據庫的輸出報表。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
值得指出的是在絕大多數數據庫應用中,一般都是使用數據集部件TTable、TQuery或TStoredProc與磁盤上的數據庫進行連接,用TDataSource部件連接數據控制部件和數據集部件,當然用戶也可以自定義數據集部件,用於數據庫應用當中, TTable 、 TQuery 和TStoredProc部件中都包含一個不可見的TField類型的對象Fields,Fields是一個串列表,它對應於數據庫表或一個查詢結果的列或字段。FIElds對象是伴隨著TTable、 TQuery 和TStoredproc部件的活動狀態動態地建立的,當數據庫表被關閉時,FIElds 對象也隨之消失,它在程序設計和程序運行過程中都是不可見的。
當然也可以利用Fields Editor建立永久性的FIElds對象供Delphi應用程序使用,我們將在後面的內容中詳細闡述。