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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

33、ce)對象Data Access DataSource 屬性 DataSet 設(shè)為 Table1數(shù)據(jù)庫應(yīng)用實例DB建立數(shù)據(jù)感知控件表格對象Data Controls DBGrid 放到窗體中。DBGride1屬性DataSource設(shè)為DataSource1。數(shù)據(jù)庫應(yīng)用實例DB設(shè)Table1的屬性Active 為True 數(shù)據(jù)庫應(yīng)用實例DB建立數(shù)據(jù)導航控件 NavigatorData Control DBNavigator DBNavigator1屬性 DataSource 設(shè)為 DataSource1數(shù)據(jù)庫應(yīng)用實例DB數(shù)據(jù)庫應(yīng)用實例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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論