- 相關(guān)推薦
淺論基于Delphi的數(shù)據(jù)庫開發(fā)論文
摘 要:詳細(xì)分析了delphi下應(yīng)用數(shù)據(jù)庫的方法。Delphi下的數(shù)據(jù)庫開發(fā)有著很強的優(yōu)勢,這里對其進(jìn)行了總結(jié),對delphi的訪問組件和數(shù)據(jù)操作組件進(jìn)行了詳細(xì)的分析。給出了一個實例來進(jìn)行說明。
關(guān)鍵詞:delphi;數(shù)據(jù)庫;ODBC;面向?qū)ο?/p>
引言
目前為止計算機軟件開發(fā)分為兩個不同的體系,一個體系是使用傳統(tǒng)的程序設(shè)計語言(如Pascal、Basic和C等)開發(fā)數(shù)值控制、數(shù)值運算等軟件。另一個體系則是通用的數(shù)據(jù)庫管理軟件領(lǐng)域(數(shù)據(jù)庫應(yīng)用程序的開發(fā))。數(shù)據(jù)庫系統(tǒng)為我們提供了一種把與我們的工作和生活緊密相關(guān)的信息集合在一起的方法,它還提供了在某個集中的地方存儲和維護(hù)這些信息的方法。數(shù)據(jù)庫系統(tǒng)主要由三大部分組成:數(shù)據(jù)庫管理系統(tǒng)(DBMS:它是專門負(fù)責(zé)組織和管理數(shù)據(jù)信息的程序)、 數(shù)據(jù)庫應(yīng)用程序(它使我們能夠獲取、顯示和更新由DBMS存儲的數(shù)據(jù))、數(shù)據(jù)庫(按一定結(jié)構(gòu)組織在一起的相關(guān)數(shù)據(jù)的集合)。
1 delphi數(shù)據(jù)庫開發(fā)
Delphi中處理數(shù)據(jù)庫主要有兩種方法,也就是BDE、ADO,從Delphi 6.0開始還加入了一種dbExpress方法。Delphi還提供了專門處理Borland 公司自己的數(shù)據(jù)庫產(chǎn)品InterBase 數(shù)據(jù)庫的專門的方法。
BDE(Borland Databas Engine),是Delphi中最古老的技術(shù),從delphi 2.0加入BDE 技術(shù)以后,一直是Delphi處理數(shù)據(jù)庫的事實上的標(biāo)準(zhǔn)。BDE 是一個基于驅(qū)動程序的體系結(jié)構(gòu),每一種數(shù)據(jù)格式或數(shù)據(jù)源都有一種驅(qū)動程序來驅(qū)動相近的數(shù)據(jù)源。BDE 可以很好的支持現(xiàn)在最流行的ODBC API方法,ODBC是一種C/C++ 應(yīng)用程序編程接口(API ),無論是對任何一種客戶/ 服務(wù)器關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS ),還是最流行索引順序訪問方法(ISAM)數(shù)據(jù)庫(Jet、Foxpro)都能很好的訪問。
ADO 技術(shù)是微軟提出來的處理關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫的新技術(shù),它基于微軟被稱為OLE DB的數(shù)據(jù)訪問模式,它是專門為了給大范圍商業(yè)數(shù)據(jù)源提供訪問而設(shè)計的,包括傳統(tǒng)的關(guān)系型數(shù)據(jù)表、電子郵件系統(tǒng)、圖形格式、Internet資源等。ADO 所需內(nèi)存更少,更適合大流量和大事務(wù)量的網(wǎng)絡(luò)計算機系統(tǒng)。
2 delphi數(shù)據(jù)庫開發(fā)優(yōu)勢
如果使用數(shù)據(jù)庫語言進(jìn)行傳統(tǒng)的算術(shù)編程,雖然也能完成相應(yīng)的功能,但是其編程過程可能極為復(fù)雜。如果使用傳統(tǒng)的編程語言進(jìn)行數(shù)據(jù)庫編程,通過調(diào)用專用的數(shù)據(jù)庫應(yīng)用程序接口函數(shù)和過程,利用這些函數(shù)和過程提供的功能,可能也能做得比較完善,但這做起來大多是極其困難的。而Delphi結(jié)合了兩個體系的優(yōu)點,它結(jié)合了傳統(tǒng)的編程語言O(shè)bject Pascal和數(shù)據(jù)庫語言的強大功能,它即可以用于傳統(tǒng)的算術(shù)編程又可以用于數(shù)據(jù)庫編程,特別是Delphi具有強大的數(shù)據(jù)庫功能,利用Delphi的數(shù)據(jù)庫工具,我們根本不需要編寫任何Object Pascal代碼便可以創(chuàng)建一個簡單的數(shù)據(jù)庫應(yīng)用。
3 Delphi數(shù)據(jù)庫常用組件
3.1數(shù)據(jù)訪問組件
Table、Query和Storedproc三個組件也稱為數(shù)據(jù)集組件,用于和數(shù)據(jù)庫連接,可將這些組件視為數(shù)據(jù)庫,對它們的操作就可認(rèn)為是對數(shù)據(jù)庫的操作。
DataSource組件是數(shù)據(jù)集組件和數(shù)據(jù)控制組件的連接媒介。數(shù)據(jù)控制組件是用戶操作數(shù)據(jù)庫中數(shù)據(jù)的界面,只有通過DataSource才能和數(shù)據(jù)集組件連接,從而獲得數(shù)據(jù)用來進(jìn)行顯示、修改等操作。
?Query組件是利用結(jié)構(gòu)化查詢語言(Structured Query Language)通過 BDE來操作數(shù)據(jù)庫的,采用SQL來實現(xiàn)。
Storedproc組件是通過 BDE對服務(wù)器數(shù)據(jù)庫進(jìn)行操作的,常用于客戶/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用程序。
DataBase組件一般用于建立遠(yuǎn)程的數(shù)據(jù)庫服務(wù)器--客戶/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用程序和數(shù)據(jù)庫之間的連接。
Session組件是用于控制數(shù)據(jù)庫應(yīng)用程序和數(shù)據(jù)庫連接的,主要用于復(fù)雜的功能,比如多線程數(shù)據(jù)庫程序編程。
BatchMove組件 用于大批數(shù)據(jù)的轉(zhuǎn)移、復(fù)制等。
UpdateSQL組件專用于只讀數(shù)據(jù)庫,用于緩存數(shù)據(jù)庫的更新。
3.2數(shù)據(jù)控制組件
數(shù)據(jù)控制組件也可稱為數(shù)據(jù)顯示組件或數(shù)據(jù)瀏覽組件。它們的主要功能是和數(shù)據(jù)訪問組件配合供用戶對數(shù)據(jù)進(jìn)行瀏覽、編輯等操作。數(shù)據(jù)控制組件在組件板上的DataControl頁上,共有15個組件。它們分別是: DBGrid組件、DBNavigator組件、DBText組件、DBEdit組件、DBMemo組件、DBImage組件、DBListbox組件、DBComboBox組件、DBCheckBox組件、DBRadioGroup組件、DBLookupListBox組件、DBLookupComboBox組件、DBRichEdit組件、DBCtrlGrid組件、DBChart組件。另外還有一些組件與數(shù)據(jù)庫有關(guān)。Decision Cube是一組主要用于統(tǒng)計的組件,可以表格或圖形等直觀的方式表達(dá)統(tǒng)計結(jié)果,不過,似乎應(yīng)用的不是很廣泛。QReport 組件是用來最后輸出報表的組件。
4 delphi下數(shù)據(jù)庫應(yīng)用例子
下面以一個簡單的例子演示delphi下數(shù)據(jù)庫的應(yīng)用。在Form1.FormCreate事件中寫入如下代碼,程序啟動時,將自動檢測是否存在數(shù)據(jù)庫別名Cntssamp,如果沒有則建立之;自動檢測別名Cntssamp中是否存在表格TSK(圖書庫),如果沒有則自動建立表格TSK。
procedure TForm1.FormCreate(Sender: TObjecvar ap:TStringList;
answer:Integer;
begin ap:=TStringlist.Create;
Session.GetAliasNames(ap); {取得別名列表}
if (ap.IndexOf(Cntssamp)=-1) then {判斷別名是否存在}
begin
answer:=Application.MessageBox(BDE信息窗口,mb—OKCancel);{增加一個名為Cngzsamp的數(shù)據(jù)庫別名}
if answer=IDCANCEL then
begin
ap.Free; Exit; end;
Session.AddStandardAlias(Cntssamp,c:delphp11,Paradox);
Session.SaveConfigFile; {BDE配置文件存盤}
end ;
ap.Clear; {取得Cngzsamp中的所有表格名稱列表}
Session.GetTableNames(Cntssamp,,False,False,ap);
if (ap.IndexOf(TSK)=-1) then {判斷表格是否存在}
begin
answer:=Application.MessageBox(Cntssamp中不存在表格TSK,現(xiàn)在創(chuàng)建嗎?,表格信息窗口,mb—OKCancel);
if answer=IDCANCEL then
begin
ap.Free; Exit; end;
with table1 do
begin
Active:=false;
DatabaseName:=Cntss& {數(shù)據(jù)庫別名}
TableName:=TSK; {表格名}
TableType:=ttParadox; {數(shù)據(jù)庫類型}
with FieldDefs do
begin {增加字段}
with IndexDefs do
begin {增加索引}
Clear; {按書號字段建立主索引}
Add(SHSY,SH,[Primary,ixUnique]); end;
CreateTable; {創(chuàng)建表格}
end; end ; ap.free; {釋放變量ap} end;
5總結(jié)
本文對delphi在其數(shù)據(jù)庫應(yīng)用中的地位進(jìn)行了詳細(xì)的分析。指出了delphi應(yīng)用于數(shù)據(jù)庫的各種方法,并且用例子詳細(xì)地說明。用delphi處理數(shù)據(jù)庫,形象、方便,大大提高了編程的效率。
參考文獻(xiàn):
[1]薩師炕,王珊,數(shù)據(jù)庫系統(tǒng)概論(第三版),高等教育出版社,1983年8月
[2]李新宇,鄭麗群,吳志強.ORACLE分布式數(shù)據(jù)庫及應(yīng)用.計算機應(yīng)用[J].2004(22):71~61.
[3]周愛民,Delphi源代碼分析,電子工業(yè)出版社2004年9月
【淺論基于Delphi的數(shù)據(jù)庫開發(fā)論文】相關(guān)文章:
Delphi下基于GIS的某邊防管控信息系統(tǒng)開發(fā)04-27
Delphi程序設(shè)計論文04-27
淺論鐵路物資企業(yè)的數(shù)據(jù)庫營銷戰(zhàn)略論文04-30
基于Delphi的發(fā)動機臺架試驗單片機控制系統(tǒng)的開發(fā)05-02
基于BREW的無線數(shù)據(jù)業(yè)務(wù)開發(fā)論文05-04
基于Avenue語言的GIS空間數(shù)據(jù)庫管理與開發(fā)04-29
淺論基于RFID技術(shù)的供應(yīng)鏈管理論文05-06
淺論基于核心素養(yǎng)的課堂改革04-30