資料庫系統提供集中儲存與管理資訊的方法,主要由三大部分組成:
傳統架構下 DBMS 與應用程式常在同一台電腦,甚至整合在同一程式中;現代趨勢演進為 Client/Server(客戶/伺服器)模式,應用程式運行於用戶端工作站,透過網路與伺服器上的 DBMS 通訊,提升處理能力。
DBMS 是資料庫系統的核心,建立在作業系統之上,主要功能:
DBMS 四大類型:檔案管理、階層式、網狀式、關聯式。關聯式資料庫(RDBMS)應用最廣,關鍵概念:
資料庫應用程式是 DBMS 對外提供服務的唯一途徑,允許使用者插入、修改、刪除、報表資料。開發語言分三大類:
SELECT Name, Total FROM Class WHERE Total > 600。SQL 為子語言,無畫面處理能力,提供標準存取介面,支援動態 SQL 與嵌入式 SQL。Delphi 結合傳統程式語言(Object Pascal)與資料庫功能,既可做傳統運算編程,又能零程式碼建立簡單資料庫應用。Delphi 1994 年底釋出,支援 Windows 3.1+,分標準版與 Client/Server 版:
透過 BDE 可存取本地/遠端資料庫、ODBC 資料源。核心工具與元件見表 13.1:
| 工具/元件 | 主要用途 |
|---|---|
| Data Access Components | 存取資料庫、資料表、預存程序 |
| Data Control Components | 使用者介面,顯示/修改資料 |
| Database Desktop (DBD) | 建立、索引、查詢、編輯資料表 |
| ReportSmith | 建立、瀏覽、列印報表 |
| Borland Database Engine (BDE) | 資料庫應用透過 BDE 存取 dBASE/Paradox/Local InterBase |
| BDE Configuration Utility | 建立/管理資料庫別名 |
| Local InterBase Server | 單機開發/測試 Client/Server 應用,再擴展至遠端伺服器 |
| InterBase SQL Link | 連接 Delphi 應用至 Local InterBase 伺服器 |
Client/Server 特性見表 13.2:SQL Links 提供遠端 SQL 伺服器驅動程式,Visual Query Builder 以視覺化方式建構 SQL。
BDE 支援多種資料源(表 13.3):
| 資料源 | 特性描述 | 副檔名 |
|---|---|---|
| dBASE 資料庫 | DBD 建立,每表一獨立檔案 | .DBF |
| Paradox 資料庫 | DBD 建立,每表一獨立檔案 | .DB |
| ASCII 檔案 | DBD 建立,每表一獨立檔案 | .TXT |
| Local InterBase Server | 多表包含在單一資料庫檔案 | .GDB |
| SQL 資料庫伺服器 | 專用工具或 DBD 建立,透過 SQL Links 存取 | 視系統而定 |
| ODBC 資料源 | 具 ODBC 介面的系統(MS Access、Btrieve 等) | 視系統而定 |
Delphi 使用可視化元件建立資料庫應用,元件板分兩頁:
TDataSource、TTable、TQuery 等,說明資料庫連線資訊,設計時可見,執行時不可見。TDBGrid、TDBEdit、TDBCheckBox 等,提供視覺化介面瀏覽/編輯資料。TTable、TQuery、TStoredProc 稱為資料集元件,負責連接實體資料表並透過 BDE 提供資料;TDataSource 連接資料集與資料控制元件。資料集內含不可見的 TField 物件清單(Fields 屬性),對應資料表欄位,隨資料表開啟動態建立、關閉釋放;亦可用 Fields Editor 建立永久欄位物件。
| 元件 | 主要用途 |
|---|---|
| TDataSource | 資料集(TTable/TQuery/TStoredProc)與資料瀏覽元件(TDBGrid/TDBEdit)間的資料傳遞管道 |
| TTable | 存取磁碟資料表的媒介,透過 BDE 讀取資料,再與 TDataSource「對話」供瀏覽元件存取 |
| TQuery | 用 SQL 語言存取資料表,支援本地與遠端 SQL 伺服器 |
| TStoredProc | 存取遠端伺服器預存程序 |
| TDatabase | 登入遠端伺服器資料庫時建立永久連線 |
| TBatchMove | 複製資料表結構或記錄 |
| TReport | 建立資料庫輸出報表 |
放置步驟:選 Data Access 頁 → 點 Table 圖示 → 表單點擊 → 設屬性:
DatabaseName:資料庫路徑或別名。TableName:具體資料表名稱。Active:True 開啟資料表,False 關閉。雙擊 TTable 開啟 Fields Editor,可建立永久欄位清單、指定欄位名稱、顯示順序、顯示字串、合法性檢驗、計算欄位等。
用 SQL 開發資料庫應用的利器。放置步驟類似,屬性設定:
DatabaseName:資料庫路徑。SQL:SQL 查詢/修改/插入語句,點擊屬性可開啟字串編輯器輸入。注意:不使用 TableName,而是在 SQL 屬性中指定資料表。
連接資料集與資料控制元件的橋樑。屬性 DataSet 指定資料集元件名稱(TTable/TQuery/TStoredProc)。
提供視覺化介面,基於 Standard 頁標準元件擴充資料瀏覽功能。常用元件見表 13.5:
| 元件 | 主要用途 |
|---|---|
| TDBNavigator | 移動記錄指標、編輯/插入/刪除/重新整理/取消 |
| TDBText | 唯讀顯示目前記錄欄位值 |
| TDBEdit | 顯示並編輯目前記錄欄位值 |
| TDBCheckBox | 顯示/編輯布林欄位 |
| TDBListBox | 列表框顯示單一欄位值 |
| TDBComboBox | 下拉框顯示單一欄位值 |
| TDBRadioGroup | 單選鈕群組決定顯示欄位 |
| TDBGrid | 網格顯示/編輯資料,配合 Fields Editor 控制欄位格式/順序/可見性 |
| TDBMemo | 瀏覽備註/Blob 欄位 |
| TDBImage | 顯示/複製/貼上圖像欄位 |
| TDBLookupListBox | 基於單表應用,顯示另一資料表指定欄位值 |
| TDBLookupComboBox | 同 LookupListBox,下拉框形式 |
資料控制元件提供一致的使用者介面,資料庫實體位置對其透明(本地或遠端皆同)。
Delphi 強項在於可將本地桌面資料庫應用輕易轉為 Client/Server 模式,資料庫實體位置對終端使用者透明。開發前必須完成資料定義(超出本書範圍)。四種常見情況:
除 EXE/DLL 外,尚需:
交付時必須在目標機安裝 BDE。Delphi 安裝程式可僅勾選「Borland Database Engine」安裝 BDE;若需 SQL 伺服器存取,再勾選「SQL Links」。為省磁碟空間,僅安裝必要驅動程式(如僅存取 dBASE 只裝 dBASE 驅動)。Paradox 驅動至少需 500KB。BDE 主要檔案見表 13.5(IDAPI01.DLL、IDPDX01.DLL、IDDBAS01.DLL、BDECFG.EXE 等)。
手動安裝:將 BDE 目錄檔案複製至目標機,修改 Win.INI 加入 [IDAPI] DLLPATH=... CONFIGFILE01=...,建立 BDECFG.EXE 捷徑。語言驅動程式安裝於 C:\DELPHI\IDAPI\LANGDRV,Win.INI 需含 [Borland Language Drivers] LDpath=...。
步驟同安裝 BDE,僅勾選 SQL Links。安裝程式會自動安裝 BDE 並提示選擇 SQL 伺服器,複製對應 DLL 至 BDE 目錄。常見伺服器所需 DLL: