首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 開發資料庫應用程式概觀

     編輯:Delphi

13.1 資料庫系統概述

資料庫系統提供集中儲存與管理資訊的方法,主要由三大部分組成:

  • 資料庫管理系統(DBMS):負責組織、管理資料的程式系統。
  • 資料庫應用程式:讓使用者取得、顯示、更新 DBMS 儲存的資料。
  • 資料庫:按特定結構組織的相關資料集合。

傳統架構下 DBMS 與應用程式常在同一台電腦,甚至整合在同一程式中;現代趨勢演進為 Client/Server(客戶/伺服器)模式,應用程式運行於用戶端工作站,透過網路與伺服器上的 DBMS 通訊,提升處理能力。

13.1.1 資料庫管理系統(DBMS)

DBMS 是資料庫系統的核心,建立在作業系統之上,主要功能:

  1. 描述資料庫:邏輯結構、儲存結構、語義資訊、保密需求。
  2. 管理資料庫:控制並發存取、資料安全/完整性、檢索/插入/刪除/修改。
  3. 維護資料庫:初始資料裝入、工作日誌、效能監控、重組、故障恢復。
  4. 資料通訊:組織資料傳輸。

DBMS 四大類型:檔案管理、階層式、網狀式、關聯式。關聯式資料庫(RDBMS)應用最廣,關鍵概念:

  • 關聯式資料庫:由多個資料表組成。Delphi 中,dBASE/FoxPro/Paradox 的資料庫對應一個子目錄,MS Access/Btrieve 則對應單一檔案。
  • 資料表:相關資料按列排列,如學生成績表。
  • 欄位:表格中的每一欄,含資料型別、寬度等描述。
  • 記錄:表格中的每一列。
  • 索引:加速資料存取速度。

13.1.2 資料庫應用程式

資料庫應用程式是 DBMS 對外提供服務的唯一途徑,允許使用者插入、修改、刪除、報表資料。開發語言分三大類:

  1. 程序性語言(3GL/4GL):Pascal、C、Basic 等透過 API 存取資料;dBASE、PAL 等為資料庫專用 4GL。
  2. 結構化查詢語言(SQL):非程序性,只需描述「做什麼」而非「怎麼做」。例:SELECT Name, Total FROM Class WHERE Total > 600。SQL 為子語言,無畫面處理能力,提供標準存取介面,支援動態 SQL 與嵌入式 SQL。
  3. 其他語言:OOP 語言(C++、Object Pascal)、巨集語言、QBE(Query-By-Example,透過填寫範例表格定義查詢)。

13.2 Delphi 資料庫特性與功能簡介

Delphi 結合傳統程式語言(Object Pascal)與資料庫功能,既可做傳統運算編程,又能零程式碼建立簡單資料庫應用。Delphi 1994 年底釋出,支援 Windows 3.1+,分標準版與 Client/Server 版:

  • 標準版:含 BDE 部分拷貝,支援 dBASE、Paradox、Local InterBase 及 ODBC 介面資料庫。
  • Client/Server 版:含 Borland SQL Links,直連 Oracle、Sybase、MS SQL Server、Informix、InterBase 伺服器。

透過 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。

13.2.2 Delphi 可存取的資料源

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 等)視系統而定

13.3 Delphi 資料庫架構

Delphi 使用可視化元件建立資料庫應用,元件板分兩頁:

  • Data Access 頁:TDataSource、TTable、TQuery 等,說明資料庫連線資訊,設計時可見,執行時不可見。
  • Data Control 頁:TDBGrid、TDBEdit、TDBCheckBox 等,提供視覺化介面瀏覽/編輯資料。

TTable、TQuery、TStoredProc 稱為資料集元件,負責連接實體資料表並透過 BDE 提供資料;TDataSource 連接資料集與資料控制元件。資料集內含不可見的 TField 物件清單(Fields 屬性),對應資料表欄位,隨資料表開啟動態建立、關閉釋放;亦可用 Fields Editor 建立永久欄位物件。

13.3.1 資料存取元件

元件主要用途
TDataSource資料集(TTable/TQuery/TStoredProc)與資料瀏覽元件(TDBGrid/TDBEdit)間的資料傳遞管道
TTable存取磁碟資料表的媒介,透過 BDE 讀取資料,再與 TDataSource「對話」供瀏覽元件存取
TQuery用 SQL 語言存取資料表,支援本地與遠端 SQL 伺服器
TStoredProc存取遠端伺服器預存程序
TDatabase登入遠端伺服器資料庫時建立永久連線
TBatchMove複製資料表結構或記錄
TReport建立資料庫輸出報表

13.3.1.1 TTable 元件

放置步驟:選 Data Access 頁 → 點 Table 圖示 → 表單點擊 → 設屬性:

  • DatabaseName:資料庫路徑或別名。
  • TableName:具體資料表名稱。
  • Active:True 開啟資料表,False 關閉。

雙擊 TTable 開啟 Fields Editor,可建立永久欄位清單、指定欄位名稱、顯示順序、顯示字串、合法性檢驗、計算欄位等。

13.3.1.2 TQuery 元件

用 SQL 開發資料庫應用的利器。放置步驟類似,屬性設定:

  • DatabaseName:資料庫路徑。
  • SQL:SQL 查詢/修改/插入語句,點擊屬性可開啟字串編輯器輸入。

注意:不使用 TableName,而是在 SQL 屬性中指定資料表。

13.3.1.3 TDataSource 元件

連接資料集與資料控制元件的橋樑。屬性 DataSet 指定資料集元件名稱(TTable/TQuery/TStoredProc)。

13.3.2 資料控制元件

提供視覺化介面,基於 Standard 頁標準元件擴充資料瀏覽功能。常用元件見表 13.5:

元件主要用途
TDBNavigator移動記錄指標、編輯/插入/刪除/重新整理/取消
TDBText唯讀顯示目前記錄欄位值
TDBEdit顯示並編輯目前記錄欄位值
TDBCheckBox顯示/編輯布林欄位
TDBListBox列表框顯示單一欄位值
TDBComboBox下拉框顯示單一欄位值
TDBRadioGroup單選鈕群組決定顯示欄位
TDBGrid網格顯示/編輯資料,配合 Fields Editor 控制欄位格式/順序/可見性
TDBMemo瀏覽備註/Blob 欄位
TDBImage顯示/複製/貼上圖像欄位
TDBLookupListBox基於單表應用,顯示另一資料表指定欄位值
TDBLookupComboBox同 LookupListBox,下拉框形式

資料控制元件提供一致的使用者介面,資料庫實體位置對其透明(本地或遠端皆同)。

13.3.3 資料庫表單專家與資料庫桌面(DBD)

  • Database Form Expert(Tools 選單):自動產生簡單資料庫應用所需任務,支援單表或主從式多表表單,自動放置元件、建立連線、撰寫 SQL、定義 Tab 順序。
  • Database Desktop (DBD):資料庫維護與定義工具,可查詢、連接、建立、重構、索引、修改、複製 Paradox/dBASE/SQL 資料表,甚至跨格式複製(如 dBASE 表複製到遠端 SQL 伺服器)。

13.4 Delphi 資料庫應用程式開發方法與步驟

13.4.1 概述

Delphi 強項在於可將本地桌面資料庫應用輕易轉為 Client/Server 模式,資料庫實體位置對終端使用者透明。開發前必須完成資料定義(超出本書範圍)。四種常見情況:

  1. 資料庫不存在或須重新定義 → 用 DBD 或伺服器工具定義。
  2. 資料庫在桌面系統/LAN,BDE/資料庫/應用程式同機 → 獨立應用。
  3. 桌面資料庫欲遷移至 SQL 伺服器 → 附錄 C 討論。
  4. 資料庫在 SQL 伺服器,應用程式連接伺服器 → 標準 Client/Server 應用。

13.4.2 開發三基本步驟

  1. 系統設計:依使用者需求明確描述資料庫(伺服器端)與應用介面(客戶端)功能劃分,視硬體環境決定計算任務分配(如低階 PC 做客戶端,高階工作站做伺服器)。
  2. 系統實作:用 Delphi 工具/元件與 Pascal 語言實作設計並除錯。最好使用備份資料庫(結構相同、資料為子集),避免破壞正式資料。Client/Server 開發可在 Local InterBase 或遠端備份庫進行,前者不佔用伺服器資源,後者能實地感受伺服器特性但有風險。
  3. 系統執行與維護:依使用者回饋持續修改完善。

13.4.3 交付資料庫應用程式

除 EXE/DLL 外,尚需:

  • 輔助文件(Readme、HLP)
  • BDE(有時稱 IDAPI)
  • ReportSmith 報表工具
  • 若用 VBX 控制項,需含 VBX 與 BIVBXII.DLL

13.3.4 安裝 BDE

交付時必須在目標機安裝 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=...。

13.4.5 安裝 SQL Links

步驟同安裝 BDE,僅勾選 SQL Links。安裝程式會自動安裝 BDE 並提示選擇 SQL 伺服器,複製對應 DLL 至 BDE 目錄。常見伺服器所需 DLL:

  • Oracle:SQLD_ORA.DLL、ORA6Win.DLL、ORA7Win.DLL、SQL13Win.DLL、COREWin.DLL 等,另需 Oracle Client 連接產品與網路協定。
  • Sybase/MS SQL Server:SQLD_SS.DLL、W3DBLIB.DLL、DBNMP3.DLL 等,另需 Sybase Client 連接產品。
  • Informix:SQLD_INF.DLL、LDLLSQLW.DLL、ISAM.IEM、OS.IEM 等錯誤訊息檔,另需 Informix Client 連接產品。
  • InterBase:SQLD_IB.DLL、GDS.DLL、REMOTE.DLL、INTERBASE.MSG 等,另需 InterBase Client 連接產品。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved