《數(shù)據(jù)庫技術(shù)與應(yīng)用》 講義_第1頁
《數(shù)據(jù)庫技術(shù)與應(yīng)用》 講義_第2頁
《數(shù)據(jù)庫技術(shù)與應(yīng)用》 講義_第3頁
《數(shù)據(jù)庫技術(shù)與應(yīng)用》 講義_第4頁
《數(shù)據(jù)庫技術(shù)與應(yīng)用》 講義_第5頁
已閱讀5頁,還剩106頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 董密信息科學(xué)與工程系 數(shù)據(jù)庫技術(shù)與應(yīng)用 講義2010 .09 Delphi 程序設(shè)計(jì)第六章 Delphi數(shù)據(jù)庫應(yīng)用開發(fā)精要Delphi數(shù)據(jù)庫應(yīng)用程序基礎(chǔ)6.2Delphi數(shù)據(jù)庫應(yīng)用程序基礎(chǔ)Query和Database組件使用ADO組件連接數(shù)據(jù)庫6.36.46.5操縱表中字段6.6Delphi工程創(chuàng)建與管理6.1 Delphi 程序設(shè)計(jì)6.1 Delphi工程創(chuàng)建與管理6.1.16.1.26.1.3Delphi 工程項(xiàng)目的創(chuàng)建Delphi 工程項(xiàng)目屬性的設(shè)置Delphi 工程項(xiàng)目的文件管理 Delphi 程序設(shè)計(jì)6.1.1 Delphi 工程項(xiàng)目的創(chuàng)建 Delphi 程序設(shè)計(jì)保存單元文件保存工

2、程文件 Delphi 程序設(shè)計(jì)6.1.2 Delphi 工程項(xiàng)目屬性的設(shè)置 Delphi 程序設(shè)計(jì)工程圖標(biāo)窗體屬性 Delphi 程序設(shè)計(jì)6.1.3 Delphi 工程項(xiàng)目的文件管理一個(gè)Delphi應(yīng)用程序必須有一個(gè)工程文件和至少一個(gè)單元文件, Delphi應(yīng)用程序的主要文件類型如下表: Delphi 程序設(shè)計(jì)文件類型擴(kuò)展名說明工程文件.dpr記錄工程項(xiàng)目中包含的單元文件、窗體文件以及應(yīng)用程序初始化程序代碼。文件由IDE自動(dòng)維護(hù)。單元文件.pas給出了窗體和組件對(duì)象的事件處理方法,可由用戶進(jìn)行編輯操作窗體文件.dfm描述窗體和組件的屬性,系統(tǒng)自動(dòng)編輯該文件單元目標(biāo)文件.dcu單元文件經(jīng)過編譯后

3、生成該文件資源文件.res保存著工程需要的位圖、圖標(biāo)等資源,由IDE自動(dòng)維護(hù)執(zhí)行文件.exe由工程項(xiàng)目生成的可執(zhí)行文件,經(jīng)過編譯、連接后自動(dòng)創(chuàng)建該文件單元備份文件.pas單元文件的備份,由IDE自動(dòng)維護(hù)工程備份文件.dpr工程文件的備份,由IDE自動(dòng)維護(hù)窗體備份文件.dfm窗體文件的備份,由IDE自動(dòng)維護(hù) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì)1.工程文件 project1example.dpr 打開工程文件 Delphi 程序設(shè)計(jì)打開后的工程文件 Delphi 程序設(shè)計(jì)2.單元文件 unitexample.pas Delphi 程序設(shè)計(jì)6.2.16.2.26.

4、2.3數(shù)據(jù)庫的連接與訪問數(shù)據(jù)庫操作組件概述數(shù)據(jù)集組件Table6.2 Delphi數(shù)據(jù)庫應(yīng)用程序基礎(chǔ)6.2.4數(shù)據(jù)源組件DataSource6.2.5數(shù)據(jù)控制組件DBGrid和DBNavigator Delphi 程序設(shè)計(jì)SQL LinkODBC驅(qū)動(dòng)程序Report Smith驅(qū)動(dòng)程序Report SmithBDE 配置程序Borland DataBase Engine BDE本地?cái)?shù)據(jù)源dBase Paradox符合ODBC規(guī)范的DBMS如Access Btrieve 等等遠(yuǎn)程數(shù)據(jù)庫遠(yuǎn)程數(shù)據(jù)源Sybase 等Oracle,SQL ServerDelphi IDE 創(chuàng)建一個(gè)Delphi 數(shù)據(jù)庫應(yīng)

5、用程序Delphi 數(shù)據(jù)庫結(jié)構(gòu) Delphi 程序設(shè)計(jì)6.2.1 數(shù)據(jù)庫的連接與訪問數(shù)據(jù)庫的連接數(shù)據(jù)庫訪問機(jī)制數(shù)據(jù)庫連接控件Borland Database Engine(BDE)Tdatabase/通過BDE管理器ActivX Data Object (ADO)TADOConnectionDbExpressTSQLConnection Delphi 程序設(shè)計(jì)1)直接利用BDE連接SQL Server 數(shù)據(jù)庫6.2.1 數(shù)據(jù)庫的連接當(dāng)前數(shù)據(jù)庫別名別名參數(shù) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì)參數(shù)設(shè)置新建立數(shù)據(jù)庫別名 Delphi 程序設(shè)計(jì)參數(shù)保存選擇新數(shù)據(jù)庫別名 彈擊鼠標(biāo)右鍵 Del

6、phi 程序設(shè)計(jì)2 )使用Database組件連接數(shù)據(jù)庫Database組件的主要屬性AliasName 指定所連接的數(shù)據(jù)庫名DatabaseName指定數(shù)據(jù)庫別名Connected連接數(shù)據(jù)庫。Database組件的主要方法Close方法 Database組件的主要事件OnLogin事件 Delphi 程序設(shè)計(jì)Database1 Delphi 程序設(shè)計(jì)2)使用 TADOConnection Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì)3)使用TSQLConnection連接數(shù)據(jù)庫雙擊單擊測(cè)試 Delphi 程序設(shè)計(jì)6.2.2 數(shù)據(jù)庫的訪問BDE(Borland Database Engine

7、)ADOdbExpress ODBC在建立好數(shù)據(jù)庫連接的基礎(chǔ)上,使用BDE數(shù)據(jù)集控件獲得數(shù)據(jù)庫中數(shù)據(jù),然后以該數(shù)據(jù)為緩沖區(qū)對(duì)其中的數(shù)據(jù)進(jìn)行操作。數(shù)據(jù)訪問有四種: Delphi 程序設(shè)計(jì)1.使用BDE訪問數(shù)據(jù)庫用戶界面元素BDE數(shù)據(jù)源數(shù)據(jù)源數(shù)據(jù)庫數(shù)據(jù)集數(shù)據(jù)集數(shù)據(jù)庫會(huì)話表單數(shù)據(jù)模型1) BDE的體系結(jié)構(gòu) Delphi 程序設(shè)計(jì)2)使用BDE管理器在BDE下安裝的數(shù)據(jù)庫驅(qū)動(dòng)大體為三類: Delphi 標(biāo)準(zhǔn)Standard 驅(qū)動(dòng)程序 SQL數(shù)據(jù)庫驅(qū)動(dòng)程序 ODBC驅(qū)動(dòng)程序 Delphi 程序設(shè)計(jì)BDE管理器配置SQL Server 數(shù)據(jù)庫參數(shù)設(shè)置 Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì)3) B

8、DE數(shù)據(jù)庫操作組件概述數(shù)據(jù)集組件基于BDE的數(shù)據(jù)集組件基于ADO的數(shù)據(jù)集組件數(shù)據(jù)源組件數(shù)據(jù)控制組件【例】 使用Delphi數(shù)據(jù)庫向?qū)В瑒?chuàng)建網(wǎng)格顯示的數(shù)據(jù)庫應(yīng)用程序。 Delphi 程序設(shè)計(jì)4) BDE數(shù)據(jù)庫程序開發(fā)技術(shù)組件關(guān)系與功能圖 Delphi 程序設(shè)計(jì)數(shù)據(jù)集組件Table1)Table組件的主要屬性 DatabaseName: 指明要訪問的數(shù)據(jù)庫名或本地?cái)?shù)據(jù)庫的路徑 TableName:指定和組件相連的數(shù)據(jù)庫中表名 Active:打開或關(guān)閉數(shù)據(jù)集 Filtered :確定對(duì)結(jié)果集是否進(jìn)行過濾 Filter:該屬性用來確定過濾條件Table1 Delphi 程序設(shè)計(jì)Table組件的主要方法

9、打開/關(guān)閉數(shù)據(jù)集procedure Open();procedure Close();改變數(shù)據(jù)集的當(dāng)前記錄procedure First(); procedure Prior();procedure Next();procedure Last();function MoveBy(Distance: integer): integer;定位一條指定記錄function Locate(const KeyFields:string;const KeyValues:Variant; Option:TLocateOption):boolean;搜索多條特定記錄function Lookup(const

10、KeyFields:string;const KeyValues:Variant; const ResultFields:string):Variant; Delphi 程序設(shè)計(jì)3) Table組件的主要事件Table組件可以響應(yīng)的事件大致分為三類: Before+操作名,After+操作名和On+操作名BeforeOpen,AfterOpen發(fā)生在數(shù)據(jù)集打開前后BeforeClose,AfterClose發(fā)生在數(shù)據(jù)集關(guān)閉前后BeforeInsert,AfterInsert發(fā)生在插入一條新的記錄前后BeforeEdit,AfterEdit發(fā)生在進(jìn)入dsEdit狀態(tài)前后BeforePost,Af

11、terPost發(fā)生在寫數(shù)據(jù)集的前后BeforeCancel,AfterCancel發(fā)生在取消修改的前后BeforeDelete,AfterDelete發(fā)生在刪除記錄的前后OnNewRecord發(fā)生在創(chuàng)建新記錄時(shí),用于設(shè)置缺省值OnCalcFields發(fā)生在計(jì)算字段進(jìn)行計(jì)算時(shí) Delphi 程序設(shè)計(jì)數(shù)據(jù)源組件DataSourceDataSource組件的主要屬性DataSet指定為其提供數(shù)據(jù)的數(shù)據(jù)集組件,如Table、QueryDataSource組件的主要方法DataSource組件的主要事件OnDataChange當(dāng)修改字段內(nèi)容或記錄指針移動(dòng)時(shí)觸發(fā)。OnUpdateData當(dāng)關(guān)系表中當(dāng)前的記

12、錄被更新時(shí)觸發(fā) Delphi 程序設(shè)計(jì)數(shù)據(jù)控制組件DBGrid和DBNavigator數(shù)據(jù)控制組件的共同屬性DataSource指定連接的數(shù)據(jù)源組件Enabled組件是否有效。ReadOnly指定是否可編輯。DBGrid組件Columns設(shè)置需要顯示的字段及其屬性DBNavigator組件DBGride1 DBNavigator1 Delphi 程序設(shè)計(jì)DBGridDatasourceTable數(shù)據(jù)控制組件 Delphi 程序設(shè)計(jì)Table1 Delphi 程序設(shè)計(jì)確定組件連接的數(shù)據(jù)庫表名指定數(shù)據(jù)庫名打開與數(shù)據(jù)集的連接 Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) D

13、elphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì)2.使用ODBC訪問數(shù)據(jù)庫 ODBC(Open Database Connectivity) 由微軟公司提出的一個(gè)用于訪問數(shù)據(jù)庫的統(tǒng)一界面標(biāo)準(zhǔn),ODBC是基于結(jié)構(gòu)化查詢語言(SQL),如果在 ODBC中建立了一個(gè)DSN(數(shù)據(jù)源名)連接,那么Delphi程序還是需要使用BDE來連接它,BDE將ODBC中所有的別名自動(dòng)在BDE中建立相同名稱的別名,并且它是刪不掉的,除非你刪掉ODBC的DSN。這種方式實(shí)際上是通過BDE,再通過ODBC,才連接到數(shù)據(jù)庫。 大型關(guān)系數(shù)據(jù)庫都提供ODBC驅(qū)動(dòng)。在建立ODBC源時(shí),

14、都會(huì)調(diào)用本身的配置,不同的數(shù)據(jù)庫也是不同的。 Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì)連接SQLServer 數(shù)據(jù)庫設(shè)置ODBC數(shù)據(jù)源 Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì)設(shè)置數(shù)據(jù)庫引擎 Delphi 程序設(shè)計(jì)修改參數(shù) Delphi 程序設(shè)計(jì)保存參數(shù) Delphi 程序設(shè)計(jì)建立連接(Tdatabase)設(shè)置Database Delphi 程序設(shè)計(jì)設(shè)置DBGrid Delphi 程序設(shè)計(jì)設(shè)置DataSource Delphi 程序設(shè)計(jì)設(shè)置Query Delphi 程序設(shè)計(jì)處于打開狀態(tài) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì)使

15、用ADO訪問數(shù)據(jù)庫無需BDE Delphi 程序設(shè)計(jì) ADO(ActiveX Data Objects)是Microsoft公司提供的訪問數(shù)據(jù)庫的一套組件,其底層為OLE DB。ADO是Microsoft公司近年來所提出的數(shù)據(jù)訪問策略之一。 Delphi 程序設(shè)計(jì)微軟的幾種數(shù)據(jù)訪問策略如下。(1)UDA(2)ODBC(3) RDO(4)Jet Delphi 程序設(shè)計(jì)(5)DAO(6)ODBCDirect(7) OLE DB(8)ADO(9)RDS(10)MDAC Delphi 程序設(shè)計(jì)ADO (ActiveX Data Objects)對(duì)象使用ADOConnection 組件建立數(shù)據(jù)庫的連接

16、Delphi 程序設(shè)計(jì)有以下幾點(diǎn)需要注意。(1)如果將所有的組件放入DataMoudle中,而在其他單元中,如果要使用所定義的ADOConnection,必須使用USE語句引入DataMoudle單元,否則無法實(shí)現(xiàn)關(guān)聯(lián)引用。(2)把數(shù)據(jù)規(guī)則定義在同一模塊中是一種好的編程習(xí)慣,不但方便使用和維護(hù),而且便于以后程序的擴(kuò)充,很容易遷移到三層或多層應(yīng)用。所以建議將使用到的組件 。 Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì)(1)建立ADO連接的參數(shù)保存在程

17、序的配置文件gxgl.ini中 。(2)在應(yīng)用程序中,創(chuàng)建Database前使用下面的代碼將gxgl.ini中數(shù)據(jù)庫選項(xiàng)的內(nèi)容讀取到Database的參數(shù)列表中,實(shí)現(xiàn)應(yīng)用程序與實(shí)際數(shù)據(jù)庫的代碼隔離。動(dòng)態(tài)建立ADO連接(自學(xué)) Delphi 程序設(shè)計(jì)注意事項(xiàng) (1)以上代碼假設(shè)ADOConnection在DataMoudle中創(chuàng)建,并且DataMoudle的名字為DMData(2)由于使用了TiniFile對(duì)象,需要在聲明中引入inifiles,即使用uses語句聲明inifiles。 Delphi 程序設(shè)計(jì)(3)由于使用了Application對(duì)象,需要在聲明中引入Forms。(4)對(duì)于the

18、Ini,在本例中作為全局變量,要求系統(tǒng)啟動(dòng)時(shí)首先創(chuàng)建theIni,例如,可在DMData的initialization初始化模塊中建立;在系統(tǒng)退出時(shí)要釋放,例如,在DMData的finalization模塊中執(zhí)行FreeanNil(theIni)。 Delphi 程序設(shè)計(jì)dbExpress 1 dbExpress組件 在組件面板dbExpress頁上集成了訪問和管理dbExpress數(shù)據(jù)集的VCL組件。 Delphi 程序設(shè)計(jì)2 使用dbExpress創(chuàng)建數(shù)據(jù)庫應(yīng)用程序 Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) De

19、lphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì)采用dbExpress也能夠?qū)崿F(xiàn)數(shù)據(jù)的雙向?yàn)g覽和修改保存,1. 通過組件TSimpleDataSet來實(shí)現(xiàn)2. 使用TSQLDataSet搭配TDataSetProvider和TClientDataSet組件來實(shí)現(xiàn) Delphi 程序設(shè)計(jì)6.3 操縱表中字段6.3.16.3.2字段對(duì)象操縱字段的數(shù)據(jù)控制組件 Delp

20、hi 程序設(shè)計(jì)6.3.1 字段對(duì)象雙擊永久字段對(duì)象1.創(chuàng)建永久的字段對(duì)象 Delphi 程序設(shè)計(jì) Delphi 程序設(shè)計(jì)2.引用字段對(duì)象通過字段對(duì)象名引用永久的字段對(duì)象Table1Capital.DisplayLabel:= 首都;通過Fields屬性的數(shù)組元素引用字段對(duì)象Table1.Fields0.DisplayLabel:= 國(guó)家;通過表中的字段名引用字段對(duì)象Table1.FieldByName(Capital).DisplayLabel:= 首都;3.自定義字段對(duì)象創(chuàng)建字段對(duì)象為DBGrid添加字段對(duì)象 Delphi 程序設(shè)計(jì)6.3.2 操縱字段的數(shù)據(jù)控制組件DBText 字段標(biāo)簽DBEdit 字段編輯框DBMemo 字段多行文本編輯框DBImage 字段圖像組件DBListBox 字段列表框DBComboBox 字段組合框DBCheckBox 字段復(fù)選框DBRadioGroup 字段單選按鈕組DBLookUpListBox 字段查詢列表框DBLookUpComboBox 字段查詢組

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論