Delphi資料庫程式設計教程
題註:Delphi初學者編寫資料庫程式的免費線上教程,重點討論ADO技術。
關於此教程:它是完全針對Delphi資料庫程式設計初學者的免費線上教程,同時也可作為想了解Delphi資料庫程式設計藝術的人的參考。開發者將學會怎樣設計、開發和測試使用Delphi和ADO技術的資料庫應用程式。本教學重點討論在資料庫應用程式中使用ADO的最常用的方法: 用TADOConnection連接資料庫、使用Tables和Queries、處理資料庫異常、建立報表等。
先修條件: 讀者應有WINDOWS作業系統的應用知識、一定的Delphi程式設計知識。新的初學者可先參考「Delphi程式設計初學者指南」(有時間我也會翻譯出來)。
第一章資料庫開發基礎(用Delphi)
第一節資料庫程式設計工具Delphi
許多Delphi初學者以寫一個象“MyNotepad”這樣的程式開始Delphi的程式設計的,而其他的開發人員則日以繼夜的編寫多媒體和圖形應用程序,但是他們遲早會意識到今天90%的軟體都將與以某種方式儲存的某種資料交互作用和影響。
有一點是毫無疑問的:Delphi在資料管理上是有效且可靠的。建立下一代商務軟體的應用程式開發人員被Delphi所吸引是有其原因的: 使用Delphi,我們可以開發軟體----操作所有類型的桌面資料庫,如Paradox、dBase或MS access。使用Delphi,我們也可以獲得C/S的解決方案。
用Delphi進行資料存取......只需幾個程式碼( Data Access with Delphi...just a few Words)
Delphi自帶40多個預先建立的資料庫元件,提供視覺化的程式設計環境--包含整合的程式碼編輯器、資料庫表單精靈(Database Form wizard)--加速可瀏覽的資料庫表單的建立、資料模組設計器( Data Module Designer)--用於多個表單間的資料存取共用。還有其他幾個Delphi提供的資料庫專用工具也能加速程式碼的產生和降低程式設計的難度。
元件面板的資料存取頁(Data Access)提供用於連接資料來源的元件。資料控制頁(Data Controls)中的資料視覺化元件用於從資料庫取得資料或傳送資料到資料庫。 ADO頁的元件使用ActiveX Data Objects技術透過OLE DB存取資料庫資訊。 InterBase頁的元件用於直接存取InterBase資料庫。
別離開( Don't runaway)
當然,資料庫程式設計不是簡單的不值一提的。在本課程中,我們將試著帶給大家關於用Delphi進行資料庫程式設計最新的技術、難題和解決方案以及所有對我們隱藏的秘密。
在使用Delphi的各種資料組件和工具以前,我們首先應該了解資料庫設計的一些概念並試著設計一個簡單的資料庫。
第二節建立一個新的資料庫
在我們開始用Delphi與資料庫進行互動之前,先了解現代資料庫的特點是一個好主意。當你看到資料庫這個字的時候,通常你會想到儲存在電腦裡的各種資料—甚至一個.pas檔案(某些Delphi單元的原始碼)也是某種資料庫,其他類型的資料庫是一個Word文件或一個簡單的.ini文件。為了存取一個.ini文件,我們通常使用針對歸類或未歸類文件(typed or untyped files)的例程和技術。
建立現代資料庫應用程式需要我們用關係的方法來考慮數據,關係模型的基本想法是資料庫有一系列的表(或關係)組成,它們可以用操作符操作並返回表或所謂的視圖。簡單的說,資料庫最好被描述為相關聯的資料的集合。一個資料庫可以包含許多不同的表,表象許多格子-列稱為字段(fields),行稱為...行(譯者加:或記錄)
為了完全的了解資料庫設計和關係模型的概念,我們需要學習額外的線上教學-「關係資料庫設計基礎」(Fundamentals of Relational Database Design)(譯者加:陸續譯出)。
新.....資料庫( New...Database)
既然本教學的重點是介紹ADO/Access的Delphi 資料庫程式設計方法,因此現在我們將了解如何在MS Access中建立一個新的.mdb資料庫。
如果你沒有建立過MS Access資料庫,你可以參考「MS Access教學」(MS Access Tutorials)(譯者加:陸續譯)。
執行MS Access,建立一個新的命名為aboutdelphi.mdb的空資料庫。在設計視窗中建立三個表格:應用程式(applications)、作者(Authors)和類型(Types)。讓我們看看這些表的結構:
應用程式表(Applications)包含與應用程式描述要求相符的欄位:姓名(Name)、描述(Description)、作者(Author)、類型(Type)、規模(Size)、成本(Cost)、DateUpl和照片(Picture)。姓名(Name)、描述(Description)、作者(Author)、類型(Type)欄位包含文字(Text)數據,預設為50個字元。規模欄位(Size)為數字欄位(Number(Single))類型-以Kb為單位儲存檔案的規模。成本(Cost)欄位是貨幣欄位(Currency)-如果應用程式是共用軟體或商業軟體。 DateUpl欄位是Date/Time值。照片(Picture)是一個OLE Object類型,擁有應用程式的照片(任意的)。設定姓名(Name)欄位為主關鍵字。
作者表(Authors)包含與應用程式作者要求相符的欄位:作者名(AuthorName)、電子郵件( Email)和網頁( Web)。所有欄位都包含字元資料(預設為50個字元)。設定作者名(AuthorName)欄位為主關鍵字。
類型表(Types)僅包含一個欄位:類型名稱(TypeName),它也是該表的主關鍵字。此表用於儲存應用程式的類型(圖形、多媒體、資料庫...)。
現在我們只需要在關係視窗建立關係,資料庫的建立就完成了。
關係間應「強制參考完整性」(Enforce Referential Integrity)在「層疊更新關聯記錄「(Cascade Update Related Records)前打勾。
2002年12月19日22:38