第5章數(shù)據(jù)庫應(yīng)用設(shè)計(jì)_第1頁
第5章數(shù)據(jù)庫應(yīng)用設(shè)計(jì)_第2頁
第5章數(shù)據(jù)庫應(yīng)用設(shè)計(jì)_第3頁
第5章數(shù)據(jù)庫應(yīng)用設(shè)計(jì)_第4頁
第5章數(shù)據(jù)庫應(yīng)用設(shè)計(jì)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 Delphi 程序設(shè)計(jì)程序設(shè)計(jì)葉核亞葉核亞人民郵電出版社人民郵電出版社 Delphi 程序設(shè)計(jì)程序設(shè)計(jì)v第1章 Delphi 2005簡介v第2章 Object Pascal語言基礎(chǔ)v第3章 Windows應(yīng)用程序界面設(shè)計(jì)v第4章 菜單、工具欄和對(duì)話框v第5章 使用復(fù)雜組件v第6章 面向?qū)ο蟮暮诵奶匦詖第7章 多文檔界面設(shè)計(jì)v第8章 程序調(diào)試與異常處理v第9章 文件操作和流v第10章 多媒體應(yīng)用設(shè)計(jì)v第11章 數(shù)據(jù)庫應(yīng)用設(shè)計(jì)v第12章 綜合應(yīng)用設(shè)計(jì) Delphi 程序設(shè)計(jì)第第11章章 數(shù)據(jù)庫應(yīng)用設(shè)計(jì)數(shù)據(jù)庫應(yīng)用設(shè)計(jì)1.11.1 關(guān)系數(shù)據(jù)庫系統(tǒng)概述關(guān)系數(shù)據(jù)庫系統(tǒng)概述2.11.2 Delphi數(shù)據(jù)

2、庫應(yīng)用程序基礎(chǔ)數(shù)據(jù)庫應(yīng)用程序基礎(chǔ)3.11.3 操縱表中字段操縱表中字段4.11.4 Query和和Database組件組件5.11.5 使用使用ADO組件連接數(shù)據(jù)庫組件連接數(shù)據(jù)庫 Delphi 程序設(shè)計(jì)11.1 關(guān)系數(shù)據(jù)庫系統(tǒng)概述關(guān)系數(shù)據(jù)庫系統(tǒng)概述1.11.1.1 數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)2.11.1.2 關(guān)系模型關(guān)系模型3.11.1.3 結(jié)構(gòu)化查詢語言結(jié)構(gòu)化查詢語言SQL4.11.1.4 數(shù)據(jù)庫體系結(jié)構(gòu)簡介數(shù)據(jù)庫體系結(jié)構(gòu)簡介 Delphi 程序設(shè)計(jì)11.1.1 數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)1.數(shù)據(jù)庫(數(shù)據(jù)庫(DataBase,DB)是長期存儲(chǔ))是長期存儲(chǔ)在計(jì)算機(jī)外存上的、有結(jié)構(gòu)的、可共享在計(jì)算機(jī)外存上的

3、、有結(jié)構(gòu)的、可共享的數(shù)據(jù)集合。的數(shù)據(jù)集合。 2.數(shù)據(jù)庫管理系統(tǒng)(數(shù)據(jù)庫管理系統(tǒng)(DBMS)是指數(shù)據(jù)庫系)是指數(shù)據(jù)庫系統(tǒng)中對(duì)數(shù)據(jù)庫進(jìn)行管理的軟件系統(tǒng)。統(tǒng)中對(duì)數(shù)據(jù)庫進(jìn)行管理的軟件系統(tǒng)。 3.數(shù)據(jù)庫系統(tǒng)(數(shù)據(jù)庫系統(tǒng)(DataBase System,DBS)是由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用程是由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用程序、數(shù)據(jù)庫管理員、用戶等構(gòu)成的人序、數(shù)據(jù)庫管理員、用戶等構(gòu)成的人機(jī)機(jī)系統(tǒng)。系統(tǒng)。 Delphi 程序設(shè)計(jì)11.1.2 關(guān)系模型關(guān)系模型1.關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系關(guān)系主關(guān)鍵字主關(guān)鍵字關(guān)系的性質(zhì)關(guān)系的性質(zhì)關(guān)系模式關(guān)系模式學(xué)生(學(xué)號(hào),姓名,性別,省份,地區(qū),出生年月,民

4、族,團(tuán)員)課程(課程號(hào),課程名,學(xué)分)學(xué)生成績(學(xué)號(hào),課程號(hào),成績) 外關(guān)鍵字外關(guān)鍵字2.關(guān)系模型的數(shù)據(jù)操作與完整性約束關(guān)系模型的數(shù)據(jù)操作與完整性約束 Delphi 程序設(shè)計(jì)11.1.3 結(jié)構(gòu)化查詢語言結(jié)構(gòu)化查詢語言SQL1.SQL語言概述語言概述SQL功能動(dòng) 詞說 明數(shù)據(jù)定義CREATE、DROP、ALTER創(chuàng)建表、刪除表、修改表數(shù)據(jù)操縱INSERT、UPDATE、DELETE插入、更新、刪除數(shù)據(jù)查詢SELECT查詢數(shù)據(jù)控制GRANT、REVOKE授予權(quán)限、收回權(quán)限表11.2 SQL語言的動(dòng)詞 Delphi 程序設(shè)計(jì)2. 數(shù)據(jù)查詢數(shù)據(jù)查詢1.SELECT語句語法語句語法SELECT ALL

5、| DISTINCT 列表達(dá)式列表達(dá)式 ,列表達(dá)式,列表達(dá)式 FROM 表表 WHERE 條件表達(dá)式條件表達(dá)式 GROUP BY 列列 HAVING 條件表達(dá)式條件表達(dá)式 ORDER BY 列列 ASC|DESC;2.運(yùn)算符運(yùn)算符=、= 、AND、OR 、LIKE 3.集函數(shù)集函數(shù)AVG( ALL | DISTINCT 列名列名) COUNT(*)、COUNT(列名列名)SUM(列名列名) 、MAX(列名列名)、MIN(列名列名) Delphi 程序設(shè)計(jì)11.1.4 數(shù)據(jù)庫體系結(jié)構(gòu)簡介數(shù)據(jù)庫體系結(jié)構(gòu)簡介1.單機(jī)數(shù)據(jù)庫單機(jī)數(shù)據(jù)庫AccessParadox 2.客戶客戶-服務(wù)器模式的關(guān)系數(shù)據(jù)庫系統(tǒng)

6、服務(wù)器模式的關(guān)系數(shù)據(jù)庫系統(tǒng)客戶客戶-服務(wù)器概念服務(wù)器概念基于客戶基于客戶-服務(wù)器模式的關(guān)系數(shù)據(jù)庫系統(tǒng)描述服務(wù)器模式的關(guān)系數(shù)據(jù)庫系統(tǒng)描述 Delphi 程序設(shè)計(jì)圖圖11.1 客戶客戶-服務(wù)器模式的關(guān)服務(wù)器模式的關(guān)系數(shù)據(jù)庫系統(tǒng)描述系數(shù)據(jù)庫系統(tǒng)描述 窗口窗口服務(wù)器端數(shù)據(jù)庫開發(fā)工具客戶端數(shù)據(jù)庫應(yīng)用程序數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)表用戶數(shù)據(jù)庫管理員(DBA)接口軟件設(shè)計(jì)人員 Delphi 程序設(shè)計(jì)11.2 Delphi數(shù)據(jù)庫應(yīng)用程序數(shù)據(jù)庫應(yīng)用程序基礎(chǔ)基礎(chǔ)1.11.2.1 與數(shù)據(jù)庫的連接方式與數(shù)據(jù)庫的連接方式2.11.2.2 數(shù)據(jù)庫操作組件概述數(shù)據(jù)庫操作組件概述3.11.2.3 數(shù)據(jù)集組件數(shù)據(jù)集組

7、件Table4.11.2.4 數(shù)據(jù)源組件數(shù)據(jù)源組件DataSource5.11.2.5 數(shù)據(jù)控制組件數(shù)據(jù)控制組件DBGrid和和DBNavigator Delphi 程序設(shè)計(jì)11.2.1 與數(shù)據(jù)與數(shù)據(jù)庫的連接方式庫的連接方式BDE / ADODelphi數(shù)據(jù)庫應(yīng)用程序本地?cái)?shù)據(jù)庫ODBC本地/遠(yuǎn)程數(shù)據(jù)庫Paradox、Access等Access、Sybase、DB2、SQL Server等 Delphi 程序設(shè)計(jì)11.2.2 數(shù)據(jù)庫操作組件概述數(shù)據(jù)庫操作組件概述1.數(shù)據(jù)集組件數(shù)據(jù)集組件基于基于BDE的數(shù)據(jù)集組件的數(shù)據(jù)集組件基于基于ADO的數(shù)據(jù)集組件的數(shù)據(jù)集組件2.數(shù)據(jù)源組件數(shù)據(jù)源組件3.數(shù)據(jù)控制

8、組件數(shù)據(jù)控制組件【例【例11.1】 使用使用Delphi數(shù)據(jù)庫向?qū)?,?chuàng)建網(wǎng)格數(shù)據(jù)庫向?qū)?,?chuàng)建網(wǎng)格顯示的數(shù)據(jù)庫應(yīng)用程序。顯示的數(shù)據(jù)庫應(yīng)用程序。 Delphi 程序設(shè)計(jì)圖圖11.4 組件關(guān)系與功能圖組件關(guān)系與功能圖 Paradox數(shù)據(jù)庫表country.dbTable數(shù)據(jù)集組件DataSource數(shù)據(jù)源組件連接數(shù)據(jù)庫中的表獲得數(shù)據(jù)源DBGrid數(shù)據(jù)顯示組件DBNavigator數(shù)據(jù)控制組件控制數(shù)據(jù)顯示數(shù)據(jù) Delphi 程序設(shè)計(jì)11.2.3 數(shù)據(jù)集組件數(shù)據(jù)集組件Table1.Table組件的主要屬性組件的主要屬性DatabaseName指明要訪問的數(shù)據(jù)庫指明要訪問的數(shù)據(jù)庫名或本地?cái)?shù)據(jù)庫的路徑名或本

9、地?cái)?shù)據(jù)庫的路徑TableName指定和組件相連的數(shù)據(jù)庫中指定和組件相連的數(shù)據(jù)庫中表名表名Active打開或關(guān)閉數(shù)據(jù)集打開或關(guān)閉數(shù)據(jù)集 Delphi 程序設(shè)計(jì)2. Table組件的主要方法組件的主要方法1.打開打開/關(guān)閉數(shù)據(jù)集關(guān)閉數(shù)據(jù)集procedure Open();procedure Close();2.改變數(shù)據(jù)集的當(dāng)前記錄改變數(shù)據(jù)集的當(dāng)前記錄procedure First(); procedure Prior();procedure Next();procedure Last();function MoveBy(Distance: integer): integer;3.定位一條指定記錄定

10、位一條指定記錄function Locate(const KeyFields:string;const KeyValues:Variant; Option:TLocateOption):boolean;4.搜索多條特定記錄搜索多條特定記錄function Lookup(const KeyFields:string;const KeyValues:Variant; const ResultFields:string):Variant; Delphi 程序設(shè)計(jì)屬性屬性功能功能BOF當(dāng)記錄指針位于數(shù)據(jù)集開頭時(shí),屬性值為當(dāng)記錄指針位于數(shù)據(jù)集開頭時(shí),屬性值為True,否則為,否則為FalseEOF當(dāng)記錄

11、指針位于數(shù)據(jù)集結(jié)尾時(shí),屬性值為當(dāng)記錄指針位于數(shù)據(jù)集結(jié)尾時(shí),屬性值為True,否則為,否則為False Delphi 程序設(shè)計(jì)3. Table組件的主要事件組件的主要事件Table組件可以響應(yīng)的事件大致分為三類:組件可以響應(yīng)的事件大致分為三類: Before+操作名,操作名,After+操作名和操作名和On+操作名操作名BeforeOpen,AfterOpen發(fā)生在數(shù)據(jù)集打開前后發(fā)生在數(shù)據(jù)集打開前后BeforeClose,AfterClose發(fā)生在數(shù)據(jù)集關(guān)閉前后發(fā)生在數(shù)據(jù)集關(guān)閉前后BeforeInsert,AfterInsert發(fā)生在插入一條新的記錄前后發(fā)生在插入一條新的記錄前后BeforeEd

12、it,AfterEdit發(fā)生在進(jìn)入發(fā)生在進(jìn)入dsEdit狀態(tài)前后狀態(tài)前后BeforePost,AfterPost發(fā)生在寫數(shù)據(jù)集的前后發(fā)生在寫數(shù)據(jù)集的前后BeforeCancel,AfterCancel發(fā)生在取消修改的前后發(fā)生在取消修改的前后BeforeDelete,AfterDelete發(fā)生在刪除記錄的前后發(fā)生在刪除記錄的前后OnNewRecord發(fā)生在創(chuàng)建新記錄時(shí),用于設(shè)置缺省值發(fā)生在創(chuàng)建新記錄時(shí),用于設(shè)置缺省值OnCalcFields發(fā)生在計(jì)算字段進(jìn)行計(jì)算時(shí)發(fā)生在計(jì)算字段進(jìn)行計(jì)算時(shí)【例【例11.2】 定位與搜索數(shù)據(jù)集。定位與搜索數(shù)據(jù)集。 Delphi 程序設(shè)計(jì)11.2.4 數(shù)據(jù)源組件數(shù)據(jù)源

13、組件DataSource1.DataSource組件的主要屬性組件的主要屬性DataSet指定為其提供數(shù)據(jù)的數(shù)據(jù)集組件,指定為其提供數(shù)據(jù)的數(shù)據(jù)集組件,如如Table、Query2.DataSource組件的主要方法組件的主要方法3.DataSource組件的主要事件組件的主要事件OnDataChange當(dāng)修改字段內(nèi)容或記錄當(dāng)修改字段內(nèi)容或記錄指針移動(dòng)時(shí)觸發(fā)。指針移動(dòng)時(shí)觸發(fā)。OnUpdateData當(dāng)關(guān)系表中當(dāng)前的記錄被更當(dāng)關(guān)系表中當(dāng)前的記錄被更新時(shí)觸發(fā)新時(shí)觸發(fā) Delphi 程序設(shè)計(jì)11.2.5 數(shù)據(jù)控制組件數(shù)據(jù)控制組件DBGrid和和DBNavigator1.數(shù)據(jù)控制組件的共同屬性數(shù)據(jù)控制組

14、件的共同屬性DataSource指定連接的數(shù)據(jù)源組件指定連接的數(shù)據(jù)源組件Enabled組件是否有效。組件是否有效。ReadOnly指定是否可編輯。指定是否可編輯。2.DBGrid組件組件Columns設(shè)置需要顯示的字段及其屬性設(shè)置需要顯示的字段及其屬性3.DBNavigator組件組件 Delphi 程序設(shè)計(jì)11.3 操縱表中字段操縱表中字段1.11.3.1 字段對(duì)象字段對(duì)象2.11.3.2 操縱字段的數(shù)據(jù)控制組件操縱字段的數(shù)據(jù)控制組件 Delphi 程序設(shè)計(jì)11.3.1 字段對(duì)象字段對(duì)象1.創(chuàng)建永久的字段對(duì)象創(chuàng)建永久的字段對(duì)象2.字段對(duì)象屬性和事件字段對(duì)象屬性和事件3.引用字段對(duì)象引用字段對(duì)

15、象通過字段對(duì)象名引用永久的字段對(duì)象通過字段對(duì)象名引用永久的字段對(duì)象nTable1Capital.DisplayLabel:= 首都;通過通過Fields屬性的數(shù)組元素引用字段對(duì)象屬性的數(shù)組元素引用字段對(duì)象nTable1.Fields0.DisplayLabel:= 國家;通過表中的字段名引用字段對(duì)象通過表中的字段名引用字段對(duì)象nTable1.FieldByName(Capital).DisplayLabel:= 首都;4.自定義字段對(duì)象自定義字段對(duì)象創(chuàng)建字段對(duì)象創(chuàng)建字段對(duì)象為為DBGrid添加字段對(duì)象添加字段對(duì)象 Delphi 程序設(shè)計(jì)【例【例11.3】 創(chuàng)建計(jì)算字段對(duì)象。創(chuàng)建計(jì)算字段對(duì)象。1

16、.創(chuàng)建字段對(duì)象創(chuàng)建字段對(duì)象Calculate 2.初始化初始化 3.定義計(jì)算公式定義計(jì)算公式 Delphi 程序設(shè)計(jì)11.3.2 操縱字段的數(shù)據(jù)控制組操縱字段的數(shù)據(jù)控制組件件1.DBText 字段標(biāo)簽字段標(biāo)簽2.DBEdit 字段編輯框字段編輯框3.DBMemo 字段多行字段多行文本編輯框文本編輯框4.DBImage 字段圖像字段圖像組件組件5.DBListBox 字段列字段列表框表框6.DBComboBox 字段字段組合框組合框7.DBCheckBox 字段字段復(fù)選框復(fù)選框vDBRadioGroup 字段單選按字段單選按鈕組鈕組vDBLookUpListBox 字段查字段查詢列表框詢列表框v

17、DBLookUpComboBox 字段字段查詢組合框查詢組合框vDBRichEdit 字段多行字段多行RTF文文本編輯框本編輯框vDBCtrlGrid 字段顯示網(wǎng)格字段顯示網(wǎng)格vDBChart 字段圖表字段圖表【例【例11.4】 使用使用Delphi數(shù)據(jù)庫向數(shù)據(jù)庫向?qū)?,?chuàng)建按字段顯示的數(shù)據(jù)導(dǎo),創(chuàng)建按字段顯示的數(shù)據(jù)庫應(yīng)用程序。庫應(yīng)用程序。 Delphi 程序設(shè)計(jì)11.4 Query和和Database組件組件1.11.4.1 使用使用Query組件執(zhí)行組件執(zhí)行SQL語句語句2.11.4.2 使用使用Database組件連接數(shù)據(jù)組件連接數(shù)據(jù)庫庫 Delphi 程序設(shè)計(jì)1.Query組件組件SQL語

18、句寫在語句寫在Query組件的組件的SQL屬性中屬性中屬性屬性:DatabaseName,SQL,Params方法方法:Open,Close, ExecSQL, ParamByName Delphi 程序設(shè)計(jì)11.4.1 使用使用Query組件執(zhí)行組件執(zhí)行SQL語句語句【例【例11.5】 按指定字段查詢。按指定字段查詢。 關(guān)鍵語句關(guān)鍵語句:sqlwhere:= where Capital = +Edit1.Text+;/注意空格和單引號(hào)注意空格和單引號(hào)Query1.SQL.Clear; /清除原先的清除原先的SQL語句語句Query1.SQL.Add(sqlstr+sqlwhere); /添加添加SQL語句語句Query1.Open; /打開表,執(zhí)行打開表,執(zhí)行SQL語句語句 Delphi 程序設(shè)計(jì)n動(dòng)態(tài)動(dòng)態(tài)SQL與參數(shù)使用與參數(shù)使用SQL中的條件查詢中的條件查詢Query的的Params屬性屬性通過通過Params屬性數(shù)組為參數(shù)賦值屬性數(shù)組為參數(shù)賦值調(diào)用調(diào)用ParamByName函數(shù)為參數(shù)賦值函數(shù)為參數(shù)賦值連接查詢,使用連接查詢,使用DataSource屬性為參數(shù)屬性為參數(shù)賦值賦值 Delphi 程序設(shè)計(jì)【例【例11.6】 按任意字段查詢。按任意字段查詢。1.圖形界面設(shè)計(jì)圖形界面設(shè)計(jì) Query1.SQ

溫馨提示

  • 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)論