Delphi7.0數(shù)據(jù)庫(kù)應(yīng)用教程_第1頁
Delphi7.0數(shù)據(jù)庫(kù)應(yīng)用教程_第2頁
Delphi7.0數(shù)據(jù)庫(kù)應(yīng)用教程_第3頁
Delphi7.0數(shù)據(jù)庫(kù)應(yīng)用教程_第4頁
Delphi7.0數(shù)據(jù)庫(kù)應(yīng)用教程_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、要點(diǎn):要點(diǎn):數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)基礎(chǔ)數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)基礎(chǔ)數(shù)據(jù)庫(kù)桌面(數(shù)據(jù)庫(kù)桌面(Database Desktop)工具的使用)工具的使用BDE組件中的組件中的Table組件的使用組件的使用DataSource組件組件數(shù)據(jù)控制組件數(shù)據(jù)控制組件數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ) 一、數(shù)據(jù)庫(kù)系統(tǒng)概述 數(shù)據(jù)庫(kù)系統(tǒng)主要由三大部分組成:數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)、數(shù)據(jù)庫(kù)應(yīng)用程序、數(shù)據(jù)庫(kù)(是按一定結(jié)構(gòu)組織在一起的相關(guān)數(shù)據(jù)的集合)。DBMS是專門負(fù)責(zé)組織和管理數(shù)據(jù)信息的程序,是數(shù)據(jù)庫(kù)系統(tǒng)的核心組成部分。用戶通過數(shù)據(jù)庫(kù)應(yīng)用程序能夠獲取、顯示和更新由DBMS存儲(chǔ)的數(shù)據(jù),通過應(yīng)用程序提供的管理界面方便地管理數(shù)據(jù)庫(kù)中的數(shù)據(jù)

2、。 數(shù)據(jù)庫(kù)(DataBase)是由一個(gè)或多個(gè)數(shù)據(jù)表所組成的,而每一個(gè)數(shù)據(jù)表(Table)是有若干列(Columns)記錄(Record)組成的。而記錄是信息處理的基本單位,且每條記錄在結(jié)構(gòu)上是相同的。 二、 Delphi7.0數(shù)據(jù)庫(kù)特性和支持的數(shù)據(jù)庫(kù)種類(1) Delphi 7.0是目前開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序的最強(qiáng)有力的工具之一。 Delphi 7.0結(jié)合了傳統(tǒng)的編程語言O(shè)bject Pascal和數(shù)據(jù)庫(kù)語言的強(qiáng)大功能, 它既可以用于傳統(tǒng)的算術(shù)編程又可以用于數(shù)據(jù)庫(kù)編程,特別是Delphi 7.0具有了強(qiáng)大的開發(fā)數(shù)據(jù)庫(kù)的功能,利用Delphi 7.0數(shù)據(jù)庫(kù)開發(fā)工具,程序員幾乎不用編寫任何代碼就可以創(chuàng)

3、建一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。 Delphi 7.0應(yīng)用程序能存取各類數(shù)據(jù)文件服務(wù)器或本地的桌面數(shù)據(jù)表及遠(yuǎn)程數(shù)據(jù)庫(kù)。Delphi 7.0程序通過BDE(Borland Database Engine)或者ADO(Active Data Object)來訪問各種數(shù)據(jù)源。其中BDE是Borland公司開發(fā)的數(shù)據(jù)庫(kù)引擎,它的基本思想是把應(yīng)用程序開發(fā)接口部分與連接數(shù)據(jù)庫(kù)的部分分開。這樣用戶就可以按照自己的意愿把應(yīng)用程序前端部分代碼得編寫通用,而數(shù)據(jù)源改變也不用重新編碼,只要重新設(shè)置BDE就以了。ADO數(shù)據(jù)訪問接口是Microsoft公司處理數(shù)據(jù)庫(kù)信息的最新技術(shù)。它是一種ActiveX對(duì)象,采用被成為OL

4、E DB的數(shù)據(jù)訪問模式,是數(shù)據(jù)訪問對(duì)象DAO、遠(yuǎn)程數(shù)據(jù)對(duì)象RDO和開放數(shù)據(jù)庫(kù)互聯(lián)ODBC三種方式的擴(kuò)展。ADO已成為訪問數(shù)據(jù)庫(kù)的新標(biāo)準(zhǔn)。二、Delphi7.0數(shù)據(jù)庫(kù)特性和支持的數(shù)據(jù)庫(kù)種類(2) 數(shù)據(jù)庫(kù)分為本地?cái)?shù)據(jù)庫(kù)和遠(yuǎn)程數(shù)據(jù)庫(kù)兩種。例如Paradox、dBase、FoxPro和Access等,這些數(shù)據(jù)庫(kù)被稱為本地?cái)?shù)據(jù)庫(kù),一般用于編寫單層的數(shù)據(jù)庫(kù)應(yīng)用程序,即本地?cái)?shù)據(jù)庫(kù)應(yīng)用程序。另一種是遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器,如InterBase、Oracle、Sybase、Informix、Microsoft Sql Server和DB2等,一般用于編寫多層次的數(shù)據(jù)庫(kù)應(yīng)用程序,即C/S(客戶/服務(wù)器Client/Se

5、rver)數(shù)據(jù)庫(kù)應(yīng)用程序和多層數(shù)據(jù)庫(kù)應(yīng)用程序。 Delphi 7.0數(shù)據(jù)庫(kù)應(yīng)用程序通過BDE或者ADO獲取它們所需的數(shù)據(jù)。Delphi 7.0所支持的數(shù)據(jù)庫(kù)種類一般包括以下幾種。1.dBase數(shù)據(jù)庫(kù)(.DBF)2.Paradox數(shù)據(jù)庫(kù)3. ASCII文件(.TXT)4. 本地InterBase服務(wù)器(.GDB)5. Access數(shù)據(jù)庫(kù)(.MDB)6. 各種數(shù)據(jù)庫(kù)服務(wù)器7. 可以通過ODBC與其他數(shù)據(jù)庫(kù)建立鏈接三、創(chuàng)建一個(gè)Delphi 7.0數(shù)據(jù)庫(kù)應(yīng)用程序 建立一個(gè)數(shù)據(jù)庫(kù)應(yīng)用程序的最終目標(biāo)是為了給用戶提供一個(gè)滿足長(zhǎng)期使用需求的軟件產(chǎn)品,因此要開發(fā)一個(gè)成功的數(shù)據(jù)庫(kù)應(yīng)用程序,關(guān)鍵之一是要進(jìn)行需求分析

6、,圍繞用戶的需求來開發(fā)程序。數(shù)據(jù)庫(kù)應(yīng)用程序的開發(fā)一般包括以下三個(gè)步驟。 一個(gè)完整的數(shù)據(jù)庫(kù)應(yīng)用程序必須包括數(shù)據(jù)庫(kù)和應(yīng)用程序兩部分。數(shù)據(jù)庫(kù)用來存放用戶的數(shù)據(jù),而應(yīng)用程序則是用來維護(hù)數(shù)據(jù)庫(kù)中的數(shù)據(jù),包括增加、刪除、修改、查詢等操作。(一)Delphi 7.0數(shù)據(jù)庫(kù)應(yīng)用程序建立步驟1. 系統(tǒng)分析和設(shè)計(jì)系統(tǒng)分析和設(shè)計(jì) 這一步實(shí)際上是最重要的一步,要深入了解用戶需求,也就是說要掌握用戶使用該軟件的具體要求有哪些,這就是所謂的需求分析。這一步不僅包括數(shù)據(jù)庫(kù)結(jié)構(gòu)的設(shè)計(jì)也包括應(yīng)用程序界面的設(shè)計(jì)。2. 應(yīng)用程序的實(shí)現(xiàn)應(yīng)用程序的實(shí)現(xiàn) 應(yīng)用程序的實(shí)現(xiàn)主要是通過Delphi 7.0提供的工具和組件及Object Pas

7、cal語言實(shí)現(xiàn)在系統(tǒng)分析與設(shè)計(jì)階段的設(shè)想功能,并邊編碼邊調(diào)試。3. 程序的運(yùn)行和維護(hù)程序的運(yùn)行和維護(hù) 使用Delphi 7.0開發(fā)工具完成程序編碼后,就要對(duì)該數(shù)據(jù)庫(kù)應(yīng)用程序進(jìn)行嚴(yán)格的測(cè)試,以讓程序盡可能的穩(wěn)定。并且在用戶使用時(shí),用戶還會(huì)再提出一些新的需求和建議,這時(shí)還要對(duì)應(yīng)用程序做一定的修改,使其滿足用戶的需求。(二) Delphi 7.0數(shù)據(jù)庫(kù)桌面(1) 數(shù)據(jù)庫(kù)桌面(Database Desktop)是Delphi 7.0中提供的最簡(jiǎn)單的數(shù)據(jù)庫(kù)管理工具,通過它可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)的建立、維護(hù)和查詢等操作。可以通過Delphi 7.0主菜單工具Tools菜單中的Database Desktop選項(xiàng)來

8、打開Database Desktop管理工具,或者通過操作系統(tǒng)的開始菜單中Delphi 7.0啟動(dòng)圖標(biāo)組打開它。Database Desktop數(shù)據(jù)操作窗體如圖1所示。1. 創(chuàng)建數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表 在Database Desktop窗口中選擇File/New/Table菜單項(xiàng),并在彈出的對(duì)話框中選擇相應(yīng)數(shù)據(jù)庫(kù)類型,例如,要建立Paradox數(shù)據(jù)庫(kù),則選擇Paradox7,如圖2所示。圖1 Database Desktop窗口圖2 創(chuàng)建數(shù)據(jù)表 單擊OK按鈕后出現(xiàn)創(chuàng)建數(shù)據(jù)表的對(duì)話框,在對(duì)話框中設(shè)置數(shù)據(jù)表的結(jié)構(gòu),包括各字段的名稱(Field Name)、字段類型(Type)、字段寬度(占用字節(jié)Size

9、)及是否設(shè)置關(guān)鍵字(Key)等。假設(shè)要?jiǎng)?chuàng)建一張學(xué)生檔案數(shù)據(jù)表,且表名為student。 (二) Delphi 7.0數(shù)據(jù)庫(kù)桌面(2) 按照字段屬性要求,在圖3顯示的創(chuàng)建數(shù)據(jù)表的對(duì)話框中分別輸入各字段的名稱(Field Name)、字段類型(Type)、字段寬度(Size)以及是否設(shè)置關(guān)鍵字(Key)等字段屬性。這里輸入字段名直接在Field Name列中輸入。輸入字段類型(Type)時(shí),要鼠標(biāo)右擊,這時(shí)會(huì)彈出菜單進(jìn)行選擇相關(guān)類型。如圖4所示。(1)Alpha :字符串型(2)Number:數(shù)字型(3)Date:日期型(4)Logical:邏輯型(5)Memo:備注型(6)Graphic:圖片型

10、圖3 創(chuàng)建數(shù)據(jù)表對(duì)話框圖4字段類型快捷菜單(二) Delphi 7.0數(shù)據(jù)庫(kù)桌面(3)(1)建立主索引的方法在圖4創(chuàng)建數(shù)據(jù)表對(duì)話框中,將光標(biāo)移到要建立主索引字段的Key列下面,雙擊鼠標(biāo)左鍵或者按空格鍵即可,這時(shí)在該列中會(huì)出現(xiàn)“*”,則表示設(shè)定關(guān)鍵字成功。這里設(shè)定“學(xué)號(hào)”為主關(guān)鍵字,即主索引,因此只要在該字段的Key列下面雙擊,即會(huì)出現(xiàn)一個(gè)“*”,定義關(guān)鍵字操作完成。圖4 創(chuàng)建數(shù)據(jù)表對(duì)話框 另外還要給數(shù)據(jù)表建立索引,即定義關(guān)鍵字。索引分為主索引和次索引兩種。主索引關(guān)鍵字字段中的數(shù)據(jù)必須惟一,而且每張數(shù)據(jù)表中只能建立一個(gè)主索引。而次索引則沒有這個(gè)限制,在次索引字段中數(shù)據(jù)允許重復(fù),且可以建立多個(gè)次索

11、引。 (2)建立次索引(輔助索引)的方法 在圖4 創(chuàng)建數(shù)據(jù)表對(duì)話框中,通過右上方的Table Properties(表屬性)下拉菜單中選擇Secondary Indexes(次索引)選項(xiàng),再單擊Define定義按鈕進(jìn)入次索引定義窗口。在次索引定義窗口中,可從左邊的Fields(字段)列表框中選擇要建立次索引的字段,雙擊或者單擊并左右方向移動(dòng)按鈕,將字段添加到右邊的Indexed Fields列表框中,可以選擇多個(gè),然后單擊OK按鈕。這時(shí)在彈出的Save Index As對(duì)話框中輸入索引文件名,然后單擊OK按鈕完成次索引的建立。 具體字段設(shè)置完成以后效果如圖6所示。單擊Save As按鈕將設(shè)置完

12、成的表保存到D:Demosstu_data目錄下,數(shù)據(jù)表名稱為Student.db。 Delphi 7.0數(shù)據(jù)庫(kù)桌面(4)圖6 字段設(shè)置2. 修改數(shù)據(jù)表結(jié)構(gòu)修改數(shù)據(jù)表結(jié)構(gòu) 如果要修改某張表的結(jié)構(gòu),選擇File/Open/Talbe菜單項(xiàng)打開數(shù)據(jù)表Student.db,然后選擇Table/Restructure選項(xiàng),就可以修改該表結(jié)構(gòu)。3. 數(shù)據(jù)記錄的輸入、修改和刪除數(shù)據(jù)記錄的輸入、修改和刪除 打開數(shù)據(jù)表,選擇Table/Edit菜單項(xiàng),進(jìn)入數(shù)據(jù)記錄編輯狀態(tài)就可以添加、修改和刪除記錄。要插入記錄則可以選擇Record/Insert選項(xiàng),或者按下Insert鍵即可在當(dāng)前記錄前插入一條記錄;按下Ct

13、rl+Delete鍵,可以刪除當(dāng)前記錄。 在編輯窗體中輸入相關(guān)記錄,顯示窗口如圖7所示。圖7 數(shù)據(jù)記錄編輯窗口Delphi 7.0數(shù)據(jù)庫(kù)桌面(5)4. 數(shù)據(jù)庫(kù)別名管理數(shù)據(jù)庫(kù)別名管理 Delphi 7.0中的數(shù)據(jù)庫(kù)訪問組件很多時(shí)候是通過數(shù)據(jù)庫(kù)別名(Alias)來訪問數(shù)據(jù)源的。數(shù)據(jù)庫(kù)別名是一種邏輯數(shù)據(jù)庫(kù)名,每一個(gè)數(shù)據(jù)庫(kù)別名都指向一個(gè)確定的物理數(shù)據(jù)源。Delphi 7.0數(shù)據(jù)庫(kù)組件就是通過這種邏輯的數(shù)據(jù)庫(kù)別名代替物理數(shù)據(jù)庫(kù)名的方法來訪問物理數(shù)據(jù)庫(kù)當(dāng)中的數(shù)據(jù),這樣程序員就不必考慮數(shù)據(jù)庫(kù)的物理位置,大大增強(qiáng)了數(shù)據(jù)的獨(dú)立性和程序的通用性。 在Database Desktop中提供了管理數(shù)據(jù)庫(kù)別名的功能,通

14、過Tools/Alias Manager菜單項(xiàng)進(jìn)入別名管理操作窗口,如圖8所示。圖8 數(shù)據(jù)庫(kù)別名管理窗口 一般在建立數(shù)據(jù)庫(kù)后,要給存放數(shù)據(jù)庫(kù)文件的文件夾建立一個(gè)數(shù)據(jù)庫(kù)別名,以供Delphi 7.0控件進(jìn)行訪問。這里要給剛才新建的數(shù)據(jù)表student.db所在的文件路徑建立數(shù)據(jù)庫(kù)別名stu_data。 三、 使用數(shù)據(jù)庫(kù)窗體向?qū)гO(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用程序(1) 數(shù)據(jù)庫(kù)窗體向?qū)В―atabase Form Wizard)是Delphi 7.0自帶的自動(dòng)生成數(shù)據(jù)庫(kù)維護(hù)窗體的工具。下面介紹如何用數(shù)據(jù)庫(kù)窗體向?qū)Ы⒁粋€(gè)數(shù)據(jù)庫(kù)應(yīng)用程序,來管理剛才通過Database Desktop建立的數(shù)據(jù)庫(kù)表文件student.

15、db中的數(shù)據(jù)。步驟如下:圖9 數(shù)據(jù)庫(kù)窗體向?qū)atabase Form Wizard 新建一個(gè)新工程項(xiàng)目Project1,選擇主菜單中的database(數(shù)據(jù)庫(kù))菜單下的Form wizard(數(shù)據(jù)表向?qū)В┻x項(xiàng),彈出數(shù)據(jù)庫(kù)窗體向?qū)Т翱贒atabase Form Wizard,如圖9所示。在Form Options框架中選擇Create a simple form選項(xiàng),即創(chuàng)建一個(gè)簡(jiǎn)單的表。(第二個(gè)選項(xiàng)Create a master/detail form是用來生成由主從表組成的維護(hù)窗體的。);在DataSet Options框架中選擇Create a form using Ttable obje

16、cts選項(xiàng),即用Ttable對(duì)象創(chuàng)建一個(gè)表,生成的窗體中用TTable控件來訪問數(shù)據(jù)庫(kù)。(如果選擇第二項(xiàng)則是用Tquery組件訪問數(shù)據(jù)庫(kù)。)然后單擊Next按鈕,進(jìn)入下一步向?qū)А?使用數(shù)據(jù)庫(kù)窗體向?qū)гO(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用程序(2) 在圖11中選擇要維護(hù)的數(shù)據(jù)表student.db中的記錄。在左邊的“Avaliable Fields”可用字段列表框中選擇要維護(hù)的字段,然后單擊 按鈕,將選中的字段添加到右邊的列表框中;單擊 按鈕將添加全部字段到右邊列表框中。這里將所有的字段都添加過去。利用 按鈕和按 鈕可以對(duì)已添加到右邊列表框中的字段進(jìn)行排序。單擊Next按鈕,出現(xiàn)圖12所示界面。 在圖12中選擇字段在窗

17、體中的顯示方式。有三種顯示方式可以選擇。水平(Horizontal):水平方向排列;垂直(Vertical):垂直方向排列;表格(Grid):以表格的方式顯示。選擇相應(yīng)方式后會(huì)在左邊的預(yù)覽窗口中顯示其排列效果。在這里,選擇垂直方式(Vertical)排列,然后單擊Next按鈕。圖10 指定數(shù)據(jù)表圖11 選擇字段圖12 選擇字段顯示方式使用數(shù)據(jù)庫(kù)窗體向?qū)гO(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用程序(3) 在圖13中選擇字段說明標(biāo)簽的位置,有兩種方式。Left:標(biāo)簽出現(xiàn)在字段信息的左方;Top:標(biāo)簽出現(xiàn)在字段信息的上方。選擇Left選項(xiàng),然后單擊Next按鈕。 在圖14完成數(shù)據(jù)庫(kù)表向?qū)Т翱谥性O(shè)定Grenerate a ma

18、in form復(fù)選框,表示生成的數(shù)據(jù)庫(kù)表窗體為當(dāng)前程序項(xiàng)目的主窗體,即運(yùn)行時(shí)首先顯示的窗體。這里將該選項(xiàng)選中,然后單擊Finish按鈕,這時(shí)會(huì)生成圖15數(shù)據(jù)庫(kù)表窗體。圖13 選擇字段說明標(biāo)簽定位置圖14 完成數(shù)據(jù)庫(kù)表向?qū)D15 生成的數(shù)據(jù)庫(kù)表窗體 以上例子通過Delphi 7.0提供的數(shù)據(jù)庫(kù)窗體向?qū)В‵orm Wizard)建立一個(gè)數(shù)據(jù)庫(kù)應(yīng)用程序。但是Delphi 7.0提供了更為強(qiáng)大的組件來開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序。Delphi 數(shù)據(jù)庫(kù)桌面系統(tǒng)Database DesktopDelphi 桌面系統(tǒng)是一個(gè)典型的MDI程序,它主要支持三種類型的窗口:Table窗口 在該窗口中可以修改數(shù)據(jù)庫(kù)表的結(jié)構(gòu),以

19、及操縱數(shù)據(jù)庫(kù)表中的記錄。Query窗口 在該窗口中可以對(duì)數(shù)據(jù)庫(kù)表進(jìn)行查詢和修改操作(如插入、刪除和修改記錄等)。 SQL編輯器窗口 在該窗口中可以直接輸入和執(zhí)行SQL語句.Delphi 數(shù)據(jù)庫(kù)桌面系統(tǒng)所使用的文件類型主要有以下幾種:.DB Paradox 的表.DBF dBASE的表.SQL SQL文件.QBE 查詢文件.PX Paradox表主索引文件.INI 初始化文件目錄工作目錄和私有目錄。Desktop在打開和保存文件時(shí)使用缺省的工作目錄。私有目錄可用來保存某個(gè)用戶專用的數(shù)據(jù)庫(kù)文件。利用File菜單中的Working Directory 和 Private Directory 命令可以

20、分別為它們?cè)O(shè)定新的目錄。 別名所謂別名(Alias)在此處就是目錄的快捷實(shí)現(xiàn)。例如工作目錄的別名是WORK:,私有目錄的別名就是PRIV使用別名的好處,一是可以避免輸入很長(zhǎng)的路徑名,二是當(dāng)別名的定義改變后,所有引用該別名的桌面系統(tǒng)對(duì)象會(huì)自動(dòng)地改為引用別名的新定義。設(shè)置私有目錄使用別名建立表結(jié)構(gòu)選擇數(shù)據(jù)庫(kù)類型 Paradox表的常用字段類型符號(hào)類型 長(zhǎng)度 注釋AAlpha 1255 字符型(由字母、數(shù)字等字符組成)NNumber 數(shù)值型(帶小數(shù)點(diǎn))SShort 短整型(-3276732768)D Date 日期型(形式為年-月-日,如98-10-1)MMemo 1240 備注型(長(zhǎng)度n表示在表中

21、存放備注 文本的前n個(gè)字符,其余存放在一個(gè) 外部備注文件中)GGraphic 圖像型(該字段可存放圖像,但實(shí)際 上是將一個(gè)圖像文件聯(lián)連接到該字 段,圖像還是存儲(chǔ)在外部文件中。LLogical 邏輯型(取值為T或F,即真或假)修改表結(jié)構(gòu)瀏覽和編輯表記錄SQL語言語言 SQL語言是結(jié)構(gòu)查詢語言,是一種標(biāo)準(zhǔn)的關(guān)系數(shù)據(jù)庫(kù)語言,Delphi中提供了對(duì)SQL語言的支持。對(duì)一般用戶而言,在Delphi中使用的SQL語言的功能主要有: 1數(shù)據(jù)查詢 格式:SELECT ALL | DISTINCT |TOP N|TOP N PERCENT *|列名1或表達(dá)式1 AS 列標(biāo)題1 ,列名2或表達(dá)式2 AS 列標(biāo)題2

22、 FROM 表名1 IN 數(shù)據(jù)庫(kù)名1 別名1,表名2 IN 數(shù)據(jù)庫(kù)名 2 別名2 WHERE 條件 GROUP BY列名1 , 列名2 HAVING 條件 ORDER BY 列名1 ASC | DESC , 列名2 ASC | DESC 例如,有語句:Select 學(xué)號(hào),姓名,年級(jí) from 學(xué)生 Where 專業(yè)=自動(dòng)化其作用是“列出自動(dòng)化專業(yè)的全部學(xué)生的學(xué)號(hào)、姓名和年級(jí)”。又如,有語句:SELECT 學(xué)生.學(xué)號(hào),學(xué)生.姓名,必修課成績(jī).課號(hào),必修課成績(jī).成績(jī) FROM 學(xué)生,必修課成績(jī) WHERE 學(xué)生.學(xué)號(hào)=必修課成績(jī).學(xué)號(hào) 其作用是“查詢出所有學(xué)生的必修課的學(xué)習(xí)情況,查詢結(jié)果中包含學(xué)號(hào)

23、、姓名、課號(hào)和成績(jī)”。 2插入記錄 格式:INSERT INTO 表名(字段名1 , 字段名2, ) VALUES (表達(dá)式1 ,表達(dá)式2,) 例如,有下列語句: INSERT INTO 學(xué)生(學(xué)號(hào),姓名,專業(yè)) VALUES(040501,朱碧春,計(jì)算機(jī)軟件) 其功能是向?qū)W生表中插入一條記錄,并給學(xué)號(hào)、姓名和專業(yè)字段賦值。 3修改記錄 格式:UPDATE 表名 SET 字段名1 = 表達(dá)式1,字段名2=表達(dá)式2 WHERE 條件 例如,有以下語句: UPDATE 必修課成績(jī) SET 成績(jī)=成績(jī)+3 WHERE 課號(hào)=02 其作用是將“必修課成績(jī)”表中的“02”號(hào)課的所有成績(jī)?cè)黾?分。 4刪除

24、記錄 格式:DELETE FROM 表名 WHERE 條件例如,有以下語句: DELETE FROM 學(xué)生 WHERE 專業(yè)=經(jīng)濟(jì)管理 其作用是從“學(xué)生”表中刪除所有的“經(jīng)濟(jì)管理”專業(yè)的學(xué)生。 查詢(查詢(Query)窗口的操作)窗口的操作 當(dāng)打開或建立一個(gè)新的查詢時(shí),桌面系統(tǒng)將打開查詢窗口。 利用File菜單中的New/QBE Query 命令可以建立一個(gè)查詢文件,QBE是Query By Example的縮寫。 執(zhí)行該命令后,系統(tǒng)提示你選擇一個(gè)要查詢的表,例如指定Student表,這時(shí)就會(huì)出現(xiàn)下圖界面。選擇查詢字段、確定查詢條件查詢結(jié)果也是一張表SQL編輯窗口操作 利用File菜單中的Ne

25、w/SQL File 命令可以建立一個(gè)sql文件。執(zhí)行該命令后,出現(xiàn)如下圖所示的編輯窗口。數(shù)據(jù)(控制)感知控件 數(shù)據(jù)訪問組件Data Control Data AccessTDBGridTDBMemoTDBNavigatTDBImageTDBListboxTDataSourcTDataSourcTTablTQueryBDE數(shù)據(jù)庫(kù)組件結(jié)構(gòu)DB數(shù)據(jù)集組件DBTTable表組件該組件封裝了一個(gè)數(shù)據(jù)庫(kù)表的所有結(jié)構(gòu)和數(shù)據(jù),使用TTable可以訪問數(shù)據(jù)庫(kù)中一張表中的數(shù)據(jù)。Ttable提供對(duì)數(shù)據(jù)庫(kù)表中每一個(gè)記錄和每一個(gè)域的直接訪問,TQuery 查詢組件一個(gè)查詢組件封裝了一個(gè)SQL語句,該語句在客戶應(yīng)用程序

26、中用于在一個(gè)或多個(gè)數(shù)據(jù)庫(kù)表中檢索、插入、修改和刪除數(shù)據(jù)。因此,該組件實(shí)際上是為你使用SQL語句操縱數(shù)據(jù)庫(kù)提供了一種手段。數(shù)據(jù)源組件TDataSource 數(shù)據(jù)源組件為了給數(shù)據(jù)感知控件提供一個(gè)抽象層和標(biāo)準(zhǔn)接口,Delphi 專門提供了一個(gè)數(shù)據(jù)源組件TDataSource。該組件是一個(gè)不可視的數(shù)據(jù)庫(kù)組件。數(shù)據(jù)源組件在數(shù)據(jù)集組件和窗體上的數(shù)據(jù)控件之間提供了一個(gè)管道,它實(shí)現(xiàn)了對(duì)源于數(shù)據(jù)集數(shù)據(jù)的顯示、導(dǎo)航和編輯。DataSource控件的重要屬性如下:AutoEdit屬性:決定了當(dāng)與一個(gè)數(shù)據(jù)源控件相連的數(shù)據(jù)控制控件獲得焦點(diǎn)時(shí),此數(shù)據(jù)源控件是否自動(dòng)的調(diào)用數(shù)據(jù)集控件的Edit方法,允許用戶通過數(shù)據(jù)控制控件編

27、輯數(shù)據(jù)集中的數(shù)據(jù)。 DataSet屬性:用來指明一個(gè)與當(dāng)前數(shù)據(jù)源控件相聯(lián)系的已存數(shù)據(jù)集控件的名字。 Enable屬性:決定了與此數(shù)據(jù)源控件相連的數(shù)據(jù)控制控件是否顯示數(shù)據(jù),默認(rèn)為True。 數(shù)據(jù)源組件DataSource控件的主要方法如下: Create:創(chuàng)建一個(gè)DataSource控件。Destory:撤銷一個(gè)DataSource控件。Edit:決定是否對(duì)于數(shù)據(jù)源相連的數(shù)據(jù)集控件調(diào)用Edit方法。IsLinkedTo:檢查數(shù)據(jù)源控件是否鏈接著一個(gè)特定的數(shù)據(jù)集控件。DataSource控件的常用事件:OnDataChange:當(dāng)與DataSource相連的數(shù)據(jù)集中的記錄指針位置變化時(shí),觸發(fā)這個(gè)事

28、件,常用這個(gè)事件保持多個(gè)控件的同步。OnUpdateData:在數(shù)據(jù)集控件中的記錄更新時(shí)觸發(fā)此事件。數(shù)據(jù)源組件Data Controls控件 Data Controls控件(數(shù)據(jù)控制控件),也稱為數(shù)據(jù)顯示控件。在該組控件頁上包含了15個(gè)數(shù)據(jù)控制控件??梢园l(fā)現(xiàn),該組控件中的外觀樣式與Standard控件頁中的控件有些相似,如DBEdit與Edit、DBListBox與ListBox等。不同之處在于Data Controls組控件能與數(shù)據(jù)表中的數(shù)據(jù)綁定,用于顯示數(shù)據(jù)信息,當(dāng)數(shù)據(jù)表中的數(shù)據(jù)改變時(shí),顯示的內(nèi)容也會(huì)隨之發(fā)生變化,而無需人為地去實(shí)現(xiàn)。 數(shù)據(jù)訪問控件(Data Access)是不可見的,因此

29、必須有可見的數(shù)據(jù)控制控件(Data Controls)為用戶提供數(shù)據(jù)的顯示,每個(gè)數(shù)據(jù)控制控件都對(duì)應(yīng)了一種數(shù)據(jù)顯示方式。 數(shù)據(jù)感知控件DB最基本的屬性: DataSource屬性:指定了Data Controls控件的數(shù)據(jù)源,通過這個(gè)數(shù)據(jù)源,Data Controls控件才能訪問數(shù)據(jù)表。DataField屬性:與數(shù)據(jù)表中的某個(gè)字段關(guān)聯(lián),作為控件的操作對(duì)象。 數(shù)據(jù)感知控件DB常用的Data Controls組控件1DBGrid控件 2DBNavigator控件 3DBText控件4DBEdit控件5DBMemo控件6DBImage控件7DBListBox控件8DBComboBox控件9. DBbr

30、ichtext控件數(shù)據(jù)感知控件DB數(shù)據(jù)感知控件DBDBEdit 該組件用一個(gè)編輯框顯示與之相連的字段的當(dāng)前值,并允許使用標(biāo)準(zhǔn)編輯框的技術(shù)進(jìn)行編輯。DBGrid 該控件以表格形式顯示數(shù)據(jù)集中的數(shù)據(jù),并象一般電子表格那樣,允許用戶操縱表格中的數(shù)據(jù)。DBNavigator 導(dǎo)航按鈕,可定位、編輯、插入、刪除、提交及刷新數(shù)據(jù)集中的記錄。數(shù)據(jù)感知控件DBDBtext 該組件用于顯示數(shù)據(jù)庫(kù)中的數(shù)據(jù)的文本框,它只能顯示數(shù)據(jù)庫(kù)表當(dāng)前記錄的字段值,用戶不能對(duì)其中的數(shù)據(jù)進(jìn)行修改。DBmemo 該控件用于顯示當(dāng)前記錄中某個(gè)字段中的數(shù)據(jù),并可以修改其中的內(nèi)容。DBbrichtext 該組件用于支持RTP格式 的多行文

31、本顯示數(shù)據(jù)感知控件DBDBimage 該組件用顯示當(dāng)前記錄中圖像字段的數(shù)據(jù)。DBlistbox 該控件用于在一個(gè)列表中顯示字段的內(nèi)容DBcombobox 由文本框和列表框組合而成,用戶既可以在文本框中輸入數(shù)據(jù),也可以在列表框中選擇一項(xiàng)。實(shí)訓(xùn): 數(shù)據(jù)庫(kù)操作 實(shí)訓(xùn)目的1. 掌握數(shù)據(jù)庫(kù)常用組件的應(yīng)用2. 掌握數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)中的基本步驟 數(shù)據(jù)庫(kù)應(yīng)用實(shí)例DB一、實(shí)訓(xùn)題意 設(shè)計(jì)一個(gè)應(yīng)用程序完成下列功能: 使用TDBGrid組件顯示數(shù)據(jù)庫(kù)customer.db 表中的記錄,并在雙擊網(wǎng)格后顯示一個(gè)列 表框,單擊列表框中的某個(gè)值,網(wǎng)格中顯 示該值。窗體如圖所示: 數(shù)據(jù)庫(kù)應(yīng)用實(shí)例DB數(shù)據(jù)庫(kù)應(yīng)用實(shí)例DB數(shù)據(jù)庫(kù)應(yīng)

32、用實(shí)例DB table Datasource Dbnavigator Listbox Button dbgrid 二、實(shí)訓(xùn)所需組件及過程 建立Table對(duì)象Table1的屬性 Database name 設(shè)為DBDEMOS。實(shí)現(xiàn)了對(duì)指定數(shù)據(jù)庫(kù)的訪問。 數(shù)據(jù)庫(kù)應(yīng)用實(shí)例DBTableName 設(shè)為 customer .DB,實(shí)現(xiàn)對(duì)表的訪問Active屬性決定數(shù)據(jù)集與數(shù)據(jù)庫(kù)中的數(shù)據(jù)是否建立連接。當(dāng)Active為False時(shí),數(shù)據(jù)集關(guān)閉,此時(shí)數(shù)據(jù)集不能對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行讀寫而當(dāng)Active為True時(shí),數(shù)據(jù)集打開,此時(shí)數(shù)據(jù)集可以對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行讀寫。數(shù)據(jù)庫(kù)應(yīng)用實(shí)例DB建立數(shù)據(jù)源(DataSour

33、ce)對(duì)象Data Access DataSource 屬性 DataSet 設(shè)為 Table1數(shù)據(jù)庫(kù)應(yīng)用實(shí)例DB建立數(shù)據(jù)感知控件表格對(duì)象Data Controls DBGrid 放到窗體中。DBGride1屬性DataSource設(shè)為DataSource1。數(shù)據(jù)庫(kù)應(yīng)用實(shí)例DB設(shè)Table1的屬性Active 為True 數(shù)據(jù)庫(kù)應(yīng)用實(shí)例DB建立數(shù)據(jù)導(dǎo)航控件 NavigatorData Control DBNavigator DBNavigator1屬性 DataSource 設(shè)為 DataSource1數(shù)據(jù)庫(kù)應(yīng)用實(shí)例DB數(shù)據(jù)庫(kù)應(yīng)用實(shí)例DB主要程序代碼:var Form1: TForm1; i:

34、integer;implementation$R *.dfmprocedure TForm1.BitBtn1Click(Sender: TObject);beginclose;end;procedure TForm1.DBGrid1CellClick(Column: TColumn);beginlistbox1.Visible:=true;listbox1.Items.Stringsi:= table1.FieldByName(company).AsString ;i:=i+1; end;procedure TForm1.ListBox1Click(Sender: TObject);begin for i:=0 to listbox1.Items.Count-1 do begin if listbox1.Selectedi then begin table1.Edit; table1.FieldByName(company).AsString :=listbox1.Items.Stringsi;

溫馨提示

  • 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. 人人文庫(kù)網(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)論