為了有一些“啞元”(dummy)數據,在類型(Type)表中填上以下4個記錄:“游戲(Game)”,“數據庫(Database)”,“互聯網(Internet)”,“圖形(Graphics)”。在選擇存儲在應用程序表(applications)中的應用程序類型時,這些值將被使用。 接下來,在作者表(Authors)中增加一行:'Delphi Guide'、'delphi.guide@about.com'、 'http://delphi.about.com'。最后,在應用程序表(Applications)中加上一行:'Zoom'、'Zooming the Destop'、'Delphi Guide'、'Graphics'、10、0、02/20/2001,同時讓最后一個字段(照片)為空。
怎樣處理這些“空”(blank)的數據庫......在本教程的余下章節將進行說明。
第二章 連到數據庫,用ADO? BDE?
第一節 Delphi數據庫連通性
像在上一章中所顯示的那樣,數據庫是以一定的結構格式存儲數據的一個或多個表的集合。這些表包含以行、列的形式表現的數據。當一個數據庫包含一個或多個表時,這些表通常擁有分散但相關的數據。MS access、Interbase、SQL Server用一個文件表示完整的數據庫(MS Access是*.mdb文件)。另一方面,Paradox和dBase由代表索引和表關系的單獨的表和文件定義。描述Paradox數據庫的所有文件通常存放在一個目錄中。當然,Delphi可以以這兩種方式工作。
用Delphi,我們可以連到不同類型的數據庫:本地或C/S(遠程服務器)數據庫。本地數據庫存放在本地驅動器或本區域網中。遠程數據庫服務器通常位于遠端機器。本地數據庫的類型有Paradox、dBase和MS?。羉cess。C/S數據庫有MS SQL Server、Interbase或Oracle。
本地數據庫通常被稱為單層數據庫。單層數據庫對任何變化如:編輯數據、插入記錄、或刪除記錄-立即實現。單層數據庫在表所容納的數據量大小和應用程序所支持的用戶量的多少上有限制。當數據庫包含幾個表之間復雜關系的信息時,或當客戶端數量增加時,你需要使用二層或多層應用程序??蛻舳藨贸绦蛟诒镜貦C上運行;應有程序服務器多運行在服務器上,而數據庫可能位于另一個服務器。多層體系的思路是客戶端程序可以非常小,因為應用程序服務器可以完成很多工作。這可以使你編寫所謂瘦客戶端應用程序。
當我們用Delphi編寫數據庫應用程序時,我們需要用一些數據庫引擎訪問數據庫的數據。數據庫因請允許你把焦點集中在你所訪問的是什么數據,而不是怎樣訪問它。從第一版開始,Delphi就為數據庫開發人員提供了BDE(Borland Database Engine)。除了BDE外,從第五版開始,Delphi提供對微軟的ADO數據庫接口的支持。
本教程將重點關注用MS Access本地數據庫開發單層數據庫應用程序。
第二節 Borland 數據庫引擎(BDE)
BDE是所有Borland產品—包括Delphi和C++Builder—時共同的數據訪問層。BDE是一個DLL(Dynamic Link Libraries)和工具的集合。它的漂亮之處在于所有的數據處理對于開發者都是透明的。BDE帶有一套驅動,可以使你的應用程序與多種不同類型的數據庫進行交流。這些驅動把高層次數據庫命令(如open或post)和任務(記錄鎖定或SQL結構)轉化為特殊的數據庫類型所需要的特定命令,這些特殊的數據庫有:Paradox、dBase、MS Access或任何ODBC數據源。BDE API (Application PRogramming Interface 應用程序編程接口)包含200多個過程和函數,它們可以從BDE單元獲得。幸運的是,你幾乎根本不需要直接調用這些程序。相反地,你通過VCL(譯者加:Visual Component Library可視組件庫)的數據訪問組件—位于組件面板的數據訪問頁(Data Access)使用BDE。為了訪問特殊的數據庫,應用程序只需知道數據庫的別名(Alias)就可以訪問該數據庫的所有數據。別名在BDE管理器(BDE Administrator)中建立,它指定了驅動器的參數和數據庫的位置。BDE自帶一個數據庫驅動集,可以訪問大范圍不同類型的數據元。標準的BDE驅動包括Paradox、dBase、MS Access、ASCII文本。當然,任何ODBC驅動器也能通過ODBC管理器(ODBC Administrator)被BDE使用。
使用BDE訪問數據庫的Delphi應用程序需要為應用程序分發BDE。當配置應用程序的BDE時,你必須使用InstallShield Express或別的Borland指定的安裝程序。
BDE作為數據庫引擎有其優點也有其缺點。但是,在本教程中將不討論為什么和什么時候你應該(或不應該)使用BDE方法而不是某些非BDE技術。
既然本教程是討論ADO/MSAccess的,那么余下部分將集中在這種非BDE的數據庫方法。
2002年12月22日
新聞熱點
疑難解答
圖片精選