複製鏈接
請複製以下鏈接發送給好友

BDE

鎖定
BDE(Borland Database Engine)是Inprise公司的數據庫引擎,它結合了SQL Links允許程序員通過它能夠連接到各種不同的數據庫。BDE是BORLAND 數據庫引擎的縮寫,它是用來驅動數據庫的,就像ODBC一樣。同樣的DBASE表可以用BDE驅動,也可以用ODBC驅動。
外文名
BDE
類    別
數據庫引擎
訪問數據分類
本地數據
所屬公司
Inprise公司

BDE簡介

要開發數據庫應用程序首先要解決數據源的問題,那麼什麼是數據源呢?簡單來講數據源就是實實在在的數據,通常是各種數據表。
有了數據源我們就有了開發程序的依據,然而一般情況下應用程序並不能直接和數據源打交道,必須通過某些中介,這些中介被稱為數據庫驅動器,通常每一種數據庫都有至少一種數據庫驅動器,如:Access,Foxpro,dBase等數據庫都有自己的數據庫驅動器,有了這些數據庫驅動器,為了編程的方便起見,接着就產生了管理這些數據庫驅動器的引擎,有了數據庫引擎,程序員在編程時就不要為訪問不同的數據庫驅動來費腦筋了,只要按照統一的方法訪問數據庫引擎,而讓數據庫引擎去完成不同數據庫驅動器的轉換,數據庫引擎就像一個公共接口,為訪問數據庫提供了統一的方法。
BDE是(Borland Database Engine)寶蘭數據引擎的縮寫,它不僅能訪問本地的不同數據庫,還可以將應用從本地上傳到客户機-服務器系統,而且有很高的效率。
能訪問的數據分類:
一,本地數據。
二,客户機-服務器體系的異地數據。

BDE工作原理

BDE 是Delphi數據庫功能的樞紐部分,所有數據庫存取使用的例程,均需要通過BDE 來處理,因此BDE是連接應用程序和數據庫的橋樑。它是由幾個DLL 模塊組成的,各模塊分別負責處理一些數據庫的相關工作。如果機器上裝有其它版本或重複的BDE ,那麼BDE是按照下列的搜索順序來載入BDE 的DLL 文件( Idapi32. dll) 並將BDE 初始化的:
(1) 搜索當前目錄(當前目錄與應用程序的啓動目錄不一定不同);如果沒有找到該文件,將繼續;
(2) 搜索註冊表HKEY-LOCAL - MACHINE \ SOFTWARE\ Borland \ Database Engine \ DLLPATH \ xxxxx中所對應的項目;如果沒有找到該文件,將繼續;
(3) 按照裝載庫文件的先後順序來進行搜索:即應用程序的當前啓動目錄→System目錄→Windows 目錄→PATH 環境參數中所設置的路徑。
裝載驅動程序DLL 文件的先後順序,除了第一步的搜索路徑要換為Idapi32.dll 這個文件被載入的目錄之外,其它基本跟上面一樣。而且BDE為一些DLL 文件預留了某些首選內存地址,如果相應的BDEDLL 文件不能被載入那些特定的首選內存地址時,系統將出錯誤信息並使初始化失敗。
BDE是一個過程化的數據庫訪問接口,通過它可以建立數據庫別名(DataBasealias)。使Delphi訪問數據庫別名中的各種數據表。
BDE在Delphi中扮演着重要角色。如果Delphi應用程序提出一個對數據庫的請求,這個請求一定要通過BDE提交給數據庫管理系統,數據庫管理系統響應應用程序的請求,把查詢結果通過BDE傳送到Delphi應用程序。對於只在單機上使用的本地數據庫而言,Delphi通過BDE來控制數據庫中數據的讀寫。對於後台遠端的數據庫系統而言。BDE尚需通過SQLLINKS或ODBC(Open DataBase ConnectivityDrivers)才能讀取數據庫的內容。

BDE區別內容

與ADO區別

BDEADO簡介

與BDE不同ADO是Microsoft推出的新一代數據訪問規範,在Delphi6中它的地位等同於一個和BDE並列的數據引擎。
ADO實際上和ActiveX技術聯繫緊密,而ActiveX又和OLE,COM等技術有很密切的關係。
雖然ADO的功能比BDE比起來弱一些,但和BDE相比ADO有一些重要的優勢,比如:
ADO將會內製在從Windows2000開始Microsoft新出的所有操作系統中,單就這一點就足以給其他的數據訪問方式畫上問號.
在Delphi7中提供了對ADO的全力支持,提供了很多ADO組件,還增加了一些新的字段類型如:WideString,GUID,Variant,interface,IDispatch等.
ADO是面向各種數據的層次很高的接口,它提供了強大的數據訪問功能,可以訪問的數據對象有:
1.關係數據庫中的各種數據;
2.非關係型數據庫,如層次型數據庫網狀數據庫等;
3.電子郵件與文件系統;
4.文本與圖象,聲音;
5.客户事務對象.

BDE區別

一、利用BDE數據引擎實現數據庫連接
BDE 連接數據庫有如下幾步:
(1) 給數據庫建立別名。BDE使用的核心是BDE別名的使用。別名相當於數據庫的邏輯名稱, 隱含了數據庫存儲物理地址和網絡數據庫的連接。要想讓應用
程序通過別名和數據庫建立連接, 首先要在BDEAdministrator 中給數據庫建立別名。
(2) 配置相關的參數。
説明: Host Name 是你自己的主機的名字, 我這裏是lisan, Server Name 是SQL 服務器的名字, 我這裏是Lisan\lisan, DataBaseName 是你在SQL 服務器下建立的數據庫的名字, UserName 的名字是Sa, 相應會出現對話框輸入密碼。這是你以後連接數據庫時用的用户名和密碼。連接好數據庫之後,那些屬性的字體自動變成黑體了。數據庫連接好之後, 以後的操作就不再連接,只需要輸入正確用户名和密碼即可成功的連接上。之後只需要對個別的情況與個別的表進行連接。
(3) 選擇數據訪問組件。數據庫組件主要有數據訪問組件和數據控制組件。在數據模塊窗體上添加數據訪問組件TTable、TQuery、TDataSource 來實現訪問數據庫的功能,還要對各組件的屬性進行設置。
(4) 選擇數據控制組件。在窗體上添加數據控制組件DBGrid、TDBEdit 等組件, 也要對屬性進行設置。設置組件DBGrid、TDBEdit。該組件一般只需設置為DataSource 屬性, 用於和組件DataSource 建立聯繫,從而設為 Data- Source1。很顯然, 組件DataSource 是用於組件Table1 和DBGrid 之間建立聯繫, 即建立一個數據通道為了簡化編程。通過上面的四步,就可以完成了數據庫的連接。
二、運用ADO技術實現數據庫的連接
Delphi 應用程序中可以使用原生ADO 對象和ADO Express 組件實現與SQL Server 2000 數據庫的連接。在此以我的畢業課題“小型服裝公司銷售管理信息系統的設計與實現”為實例來介紹ADO Express 組件實現與SQL Server 2000 數據庫的連接。Delphi中除連接類型外其他的ADO組件都有一個ConnectionString 屬性。首先必須配置該屬性才能連接到SQL Server 2000 服務器。連接到銷售管理系統數據庫的多個ADO 組件的ConnectionString 屬性相同, 因此可以只配置一個ConnectionString 屬性, 而通過配置其他ADO 組件的ConnectionString 屬性來共享同一連接, 從而提高對SQL Server 2000 的訪問效率。銷售管理系統數據庫存放於名為lisan\lian 的服務器上, 他的數據庫名稱為lv,登錄用户為lisan, 登錄密碼為lisan。具體操作如下:
ADOConnection1.Connection
String:=’Provider=SQLOLEDB.1;
Password=lisan;
Persist SecurityInfo=True;
User ID=lisan;
Initial Catalog=lv;
Data Source=lisan\lian’
ADOConnection1 為ADO Connection 類(組件)的一個對象。其中Provider= SQLOLE DB.1 指明OLEDB 提供者, User ID=lisan 和Password=lisan指明登錄SQLServer 的用户賬號和口令, PersistSecurity Info =True使該連接組件自動存儲用户登錄口令, Initial Catalog=lv 指明瞭銷售管理系統數據庫的名稱(別名),DataSource=lisan\lian 指明瞭數據庫所在服務器名稱。
另外也可以通過連接嚮導來實現連接, 雙擊ADOConnection1 對象即見所示的連接嚮導。此連接嚮導可以通過兩種方法來連接:
(1) 選擇UseData Link File, 通過Browse 按鈕可
連接一個外部後綴為udl 的文件( 此文件可通過新建空文本文件而後更改後綴來實現,然後可以打開此文件來設置外部的連接屬性) , 這樣ADOConnection1.Connection String 的信息將保存於外部。這一種連接的缺點是udl 文件沒有被加密, 如果採用保存密碼的方式, 通過寫字板即可看到裏面的密碼。
(2) 選擇UseConnection String, 單擊Build 按鈕彈出對話框。
在此輸入ADOConnection1.Connection String 的信息就可對數據庫連接。這時可以通過TADOQuery組件訪問銷售管理系統數據表, 設置TADOQuery 類對象ADOQuery1 的Connection 屬性為ADOConnection1,然後通過設置其SQL 屬性來指定操作, 例如要從數據庫返回服裝基本信息:
ADOQuery1.SQL:=‘SELECT*FROM 服裝基本信息表’;
用户還可以為TADOQuery 類的SQL 屬性指定其他SQL 描述, 從而實現過濾複雜的數據查詢。

BDE組件介紹

簡單介紹一下Delphi中常用的數據庫組件。
1. 數據訪問組件(Data Access Component)
數據訪問組件在Delphi組件面板的Data Access組件頁上可以找到。這裏我們應當注意:Table、Query和Storedproc三個控件,它們稱為“數據集組件”,用於和數據庫連接。學習者可以將這些控件視為“虛擬”的數據庫,對它們的操作就可以認為是對數據庫的操作。 (1)DataSource控件是數據集組件和數據控制組件的連接媒介。數據控制組件是用户操作數據庫中數據的界面,只有通過DataSource控件才能和數據集組件連接,從而對數據進行顯示、修改、維護等操作。 (2)Table控件是通過數據庫引擎——BDE來存取數據庫中的數據的。通過BDE將用户對數據庫的操作(如添加、刪除、修改等)傳遞給數據庫。 (3)Query控件是利用SQL(Structured Query Language,結構化查詢語言)通過BDE來操作數據庫的,和Table控件完成的功能相似,它只是採用了SQL來實現。 (4)Storedproc控件是通過BDE對服務器數據庫進行操作的,常用於客户/服務器(C/S)結構的數據庫應用程序。 (5)DataBase控件一般用於建立遠程的數據庫服務器——客户/服務器結構的數據庫應用程序和數據庫之間的連接。 (6)Session控件是用於控制數據庫應用程序和數據庫連接的,主要用於複雜功能的實現,例如:多線程數據庫程序設計。
2. 數據控制組件(Data Control Component)
數據控制組件也可以稱為數據顯示組件或數據瀏覽組件。它們的主要功能是與數據訪問組件相配合,提供給用户一個對數據進行瀏覽、編輯等操作的界面。數據控制組件在組件板上的DataControl頁上。它們主要有:DBGrid控件、DBNavigator控件、DBText控件、DBEdit控件、DBMemo控件、DBImage控件、DBListbox控件、DBComboBox控件、DBCheckBox控件、DBRadioGroup控件、DBLookupListBox控件、DBLookupComboBox控件、DBRichEdit控件、DBCtrlGrid控件、DBChart控件等。 此外,還有一些組件與數據庫有關。例如,Decision Cube是一組主要用於數據統計工作的控件,以表格或圖形等直觀的方式表達統計結果。QReport是用來輸出報表的控件,但是,根據經驗來看,此控件不太適合中國人報表的習慣。此組件是Borland公司購買而來,性能不是太好,所以使用的不是很多。有一些第三方控件提供的報表控件很好用,也有一些國人自己製作的報表控件,很適合中國人的習慣。 還有一個組件頁是ADO(ActiveX Data Objects),主要是使用微軟的OLE DB功能對數據庫服務器中的數據進行訪問和操作。其主要優點是易於使用、高速度、低內存支付和存儲空間佔用較少。ADO支持用於建立基於客户端/服務器和基於Web的應用程序。ADO同時具有遠程數據服務(RDS)功能,通過RDS可以在一次往返過程中實現將數據從服務器移動到客户端應用程序或Web頁、在客户端對數據進行處理然後將更新結果返回服務器的操作。ADO逐漸流行起來,ADO本身也很複雜,微軟有專門的幫助文件來説明如何使用ADO,學習者有興趣可以找相關資料進一步學習。

BDE軟件優勢

Delphi 中兩種連接數據庫的方法:BDE 數據引擎和ADO 技術。相比而言, BDE 數據引擎有以下四個優勢: (1)其應用程序運行效率非常高。(2)目前BDE 是與Delphi 整合得最好的數據庫訪問引擎,它是通過提供安裝相應驅動程序的方式來支持相應數據庫訪問能力, 因此Delphi數據庫應用程序能訪問多種類型的數據庫, 而不是侷限於一種數據庫,從而Delphi對分佈式數據庫應用程序編寫有很強的支持能力, 並且對於有些數據庫, 只能使用BDE 引擎才能訪問。(3)BDE 以提供組件的方式支持數據庫編程, 編程非常直觀、簡單。(4)BDE 對數據庫應用程序(特別是在網絡環境下) 安裝過程中的配置管理非常方便。
雖然BDE 有很多的優勢, 但是Borland公司對BDE 已經進入了後期維護的階段, 停止了對BDE 的更新開發。相反, ADO 就具有了廣闊的發展前景, 雖然ADO 的執行效率可能有些不如BDE,但是ADO 不光具有BDE 的後三點優勢,它還是通用的數據庫訪問技術, 並得到了廣泛的支持, 使用範圍廣, 升級和維護比較方便。