第8章使用BDE組件開發(fā)數(shù)據(jù)庫_第1頁
第8章使用BDE組件開發(fā)數(shù)據(jù)庫_第2頁
第8章使用BDE組件開發(fā)數(shù)據(jù)庫_第3頁
第8章使用BDE組件開發(fā)數(shù)據(jù)庫_第4頁
第8章使用BDE組件開發(fā)數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第8章 使用bde組件開發(fā)數(shù)據(jù)庫應用程序 本章要點: 常用的bde組件 ttable組件的常用屬性、方法與事件的 用 tdatasource組件 常用的數(shù)據(jù)控制組件及其使用方法 用ttable組件進行數(shù)據(jù)庫常規(guī)操作的方 法 8.1 使用bde組件開發(fā)數(shù)據(jù)庫應用程序的一般方法 8.1.1 使用bde組件開發(fā)數(shù)據(jù)庫應用程序的模式 1. bde組件 bde組件均位于【bde】組件頁中,其作用是與實際 的物理數(shù)據(jù)庫建立聯(lián)系,從物理數(shù)據(jù)庫中提取信息, 或把信息的修改存放到物理數(shù)據(jù)庫中。 2. data access組件 data access組件位于【data access】組件頁中,該類 組件是連接b

2、de組件和數(shù)據(jù)控制組件的橋梁 。 3. data controls組件 8.1.2 常用的bde組件簡介 8.2 ttable組件的使用 8.2.1 ttable組件的常用屬性 1. databasename屬性 2. tablename屬性 3. tabletype屬性 4. active屬性 5. readonly屬性 6. modified屬性 7. fieldcount屬性 8. recordcount屬性 9. recno屬性 10. recordsize屬性 11. fields屬性 12. bof屬性 13. eof屬性 14. filter屬性 15. cachedupdate

3、s屬性 【例8-1】 顯示與ttable組件相連接的數(shù)據(jù)表的相 關屬性。程序設計界面如圖8-3所示,使用ttable組件 與數(shù)據(jù)表“學生”相連接。程序運行時在listbox1中 顯示表中的所有字段名,在編輯框edit1中顯示表名, 在編輯框edit2中顯示字段數(shù),在編輯框edit3中顯示記 錄數(shù),在編輯框edit4中顯示記錄號,在編輯框edit5中 顯示記錄長度。程序運行界面如圖8-4所示。 分析:為使ttable組件與物理數(shù)據(jù)庫連接起來, 至少應設置它的databasename屬性和tablename屬 性。為使ttable組件中的數(shù)據(jù)集能夠使用,應把它的 active屬性設為true。為使

4、程序在一開始運行時就能顯 示出所有字段的字段名,可在窗體的oncreate事件中 使用一個循環(huán),在循環(huán)中把fields數(shù)組的每個元素的 fieldname屬性值添加到listbox1列表框。顯示數(shù)據(jù)表 的其他屬性,可通過相應的屬性名來實現(xiàn)。 8.2.2 ttable組件的常用方法 1. fieldbyname方法 該方法用于引用數(shù)據(jù)集中的某個字段,該方法 的函數(shù)形式如下: function fieldbyname(constfieldname:string):tfield 【例8-2】 編寫一個顯示字段名稱和選中字段的主要 屬性的程序。程序的設計界面如圖8-5所示,程序的運 行界面如圖8-6所

5、示。程序執(zhí)行時,首先把當前目錄下 的學生表中的字段填充到列表框listbox1中,當在 listbox1中選中某字段后,該字段的相應屬性值將顯 示在對應的編輯框中。 分析:顯示字段名的方法同例8-1。當在listbox1上單擊 以選中某個字段時,可通過ttable組件的fieldbyname方 法以列表框中選中的列表項作為參數(shù)來訪問對應字段的屬 性。需注意的是編輯框中只能顯示字符串數(shù)據(jù),因此當字 段屬性不是字符串數(shù)據(jù)時,應把它轉換為字符串數(shù)據(jù)。 2. 記錄指針移動方法 【例8-3】 編寫一個數(shù)據(jù)庫應用程序,用來瀏覽和維護 當前目錄下“學生表”中的數(shù)據(jù),要求程序的瀏覽和維護 功能均使用組件來實現(xiàn)

6、。程序的設計界面如圖8-7所示, 程序的運行界面如圖8-8所示。 分析:可使用tdatasource組件建立ttable組件與 數(shù)據(jù)控件組件之間的聯(lián)系,使用tdbnavigator來實現(xiàn) 記錄指針的移動,使用tdbedit來顯示ttable組件數(shù)據(jù) 集的當前記錄的內容。 【例8-4】 編寫一個數(shù)據(jù)庫應用程序,用來瀏覽當前 目錄下“學生表”中的數(shù)據(jù),要求記錄指針的移動采 用移動記錄指針的方法。程序的設計界面如圖8-9所示, 程序的運行界面如圖8-10所示。程序運行時單擊相應 的按鈕,將實現(xiàn)記錄指針的相應移動。 分析:為使在程序運行時,單擊相應的按鈕可實現(xiàn) 記錄指針的相應移動,應在按鈕的oncli

7、ck事件代碼中 調用相應的記錄指針移動方法。 3. 查詢記錄的相關方法 ttable組件提供了4種查詢記錄的方法 : (1)gotokey方法:該方法用于精確查找 ; (2)findkey方法:該方法是實現(xiàn)精確查找 的另一種方法,它和gotokey一樣均是一個函 數(shù)過程,格式如下: function findkey(const keyvalues: array of const): boole (3)gotonearest和findnearest用于模糊查 找。 4. 數(shù)據(jù)操作相關方法 【例8-6】 編寫一個對當前目錄下的學生表進行維 護的程序,要求該程序能夠完成記錄的增加、插入、 修改和刪除

8、等功能,對于增加和修改功能,程序應能 提供確定和取消操作。程序的設計界面如圖8-13所示, 程序的運行界面如圖8-14所示。程序運行時,單擊相 應的按鈕將完成相應的數(shù)據(jù)表的維護操作。 分析:調用相應的ttable組件的方法實現(xiàn)相應的數(shù) 據(jù)操作功能。 8.2.3 ttable組件的常用事件 1. before事件 2. after事件 3. on事件 【例8-7】 為例8-6添加一條關于刪除的參照 完整性驗證:如果必修課成績表中有當前學生 的選課,則不允許刪除當前記錄。再給“確定” 操作增加一個提示功能:當執(zhí)行post成功時, 將顯示“保存成功”的提示信息。 分析:假設table1連接學生表,t

9、able2連接必修 課成績表,在table1組件中執(zhí)行刪除操作發(fā)生之前, 將發(fā)生beforedelete事件,可在該事件中根據(jù) table1組件的當前記錄的學號值在table2組件中查 找相應的學號,如果找到則不能刪除,系統(tǒng)可拋出 一個異常來終止刪除操作。post方法執(zhí)行成功后, 將會發(fā)生afterpost事件,可在該事件中顯示提示 信息。 8.3 tdatasource組件的使用 tdatasource組件是使用最多的數(shù)據(jù) 訪問組件,用來連接數(shù)據(jù)集組件和數(shù)據(jù) 控制組件。 tdatasource組件的屬性比較少,最 重要 的是dataset屬性。該屬性指出要 與哪一個數(shù)據(jù)集組件建立聯(lián)系,它的屬

10、 性值是某一個數(shù)據(jù)集組件 8.4 常用數(shù)據(jù)控制組件及其使用方法 8.4.1 數(shù)據(jù)控制組件的常用屬性及使用方法 1. 基本屬性 (1)datasource屬性 (2)datafield屬性 2. 使用方法 (1)在界面上添加ttable組件。 (2)在界面上添加一個tdatasource組件 。 (3)在界面上添加數(shù)據(jù)控制組件。 8.4.2 常用的數(shù)據(jù)控制組件 【例8-8】 編寫一個對學生表進行顯示和修改的程序。 程序有兩個窗體form1和form2,設計時的form1和 form2如圖8-20和圖8-21所示。 程序執(zhí)行時,首先出現(xiàn)form1,在form1上的網(wǎng)格控 件上雙擊,將會出現(xiàn)form

11、2。在form2中將顯示雙擊的 當前記錄的值,可以對它進行修改,修改完成后單擊 “確定”按鈕將會把修改的結果存放到數(shù)據(jù)表中并返 回到form1窗口,單擊“取消”按鈕將取消用戶所做的 修改操作并返回form1窗口。 分析:為使form2中的數(shù)據(jù)控制組件能夠和form1中 數(shù)據(jù)控制組件顯示同一個數(shù)據(jù)集的內容,應把form2上 相應的數(shù)據(jù)控制組件的datasource屬性設置成與form1 上的數(shù)據(jù)控制組件使用的tdatasource組件的名稱。 【例8-9】 編寫一個必修課成績表的輸入程序,要求 輸入學號使用一個tdblookup combobox組件,該組 件從學生表中提取學號信息,讓用戶選擇輸

12、入。程序 的設計界面如圖8-22所示,程序的運行界面如圖8-23 所示。 分析:輸入成績時,學號必須是一個具體的學生的 學號,因此可從學生表中提取出學生學號信息供用戶 選擇以減少輸入錯誤。 【例8-10】 設計一個動物圖片瀏覽程序,用來瀏覽 數(shù)據(jù)庫別名dbdemos下的animals. dbf表中的bmp字 段中存放的動物照片。程序的設計界面如圖8-24所示, 程序的運行界面如圖8-25所示。 分析:顯示數(shù)據(jù)庫中圖像字段的內容,應使用 tdbimage組件。 【例8-11】 用database desktop應用程序創(chuàng)建一個 名為rsda的數(shù)據(jù)表,該表有4個字段:編號、姓名、 性別和婚姻狀況。

13、表的結構如圖8-26所示。然后編寫 一個對該數(shù)據(jù)表進行維護的數(shù)據(jù)庫應用程序,程序的 設計界面如圖8-27所示,程序的運行界面如圖8-28所 示。 分 析 : 由 于 性 別 只 有 兩 種 情 況 , 故 可 用 dbradiogroup組件供用戶選擇輸入?;橐鰻顩r是互斥 的,可通過tdbcheckbox組件來輸入或顯示。 8.5 主從表數(shù)據(jù)庫應用程序的編寫方法 【例8-12】 以dbdemos數(shù)據(jù)庫別名下的 customer.db作為主表,以orders.db作為從表,以 custno字段作為主從表聯(lián)系的字段建立主從表應用程 序。程序的設計界面如圖8-29所示,程序的運行界面 如圖8-30所

14、示。程序運行時在主表中選定一個客戶, 從表將顯示相應客戶的訂單信息。 8.6 通過程序創(chuàng)建數(shù)據(jù)庫表 1. fielddefs屬性 2. indexdefs屬性 3. createtable方法 【例8-13】 通過編程的方式在當前目錄下 生成一個名為rygl的paradox表,該表有四個 字段,分別為:bh(編號,字符型,8個字節(jié), 必填字段)、xm(姓名,字符型,10個字節(jié), 必填字段)、nl(年齡,整型)和hf(婚否, 邏輯型)。同時還為該表創(chuàng)建了兩個索引,分 別為bh(索引字段為bh,是主鍵索引)、 xm(索引字段為xm)。并給該表添加兩條記 錄,內容為: 01001001 王和平 23

15、 true 01001002 李小華 21 false 程序的設計界面如圖8-33所示,程序的運行界面如圖8- 34所示。 分析:建立數(shù)據(jù)表,首先要定義表的字段,可通過 ttable組件的fielddefs屬性的addfielddef屬性來實現(xiàn)。 如果表有索引,還必須要定義索引,可通過ttable組 件的indexdefs屬性的addindexdef屬性來實現(xiàn)。字段 和索引均定義好后,可通過調用ttable組件的 createtable方法來建立表。 8.7 ttable組件編程綜合實例 【例8-14】使用ttable組件實現(xiàn)“圖書瀏覽與維護程 序”,該程序的功能要求如下。 (1)建立一個名為

16、tsxx的表,表的結構如圖8-35所示。 (2)按鈕的功能實現(xiàn)與狀態(tài)設置。 如果數(shù)據(jù)表中無記錄,則除【添加】按鈕外的其他按鈕均不可 一開始,【確定】和【取消】按鈕不可用,單擊【添加】或【修 改】按鈕后,【確定】和【取消】按鈕可用,此時其他各按鈕均 不可用。當單擊【確定】或【取消】按鈕后,這兩個按鈕不可用, 其他各個按鈕均可用。 當記錄指針處于文件尾時,【后移】和【末記錄】按鈕不能用, 當記錄指針處于【文件頭】時,【前移】和【首記錄】按鈕不能 用。 (3)顯示各字段內容的組件不再使用data controls組件頁上的 組件,而是使用像tedit,tcheckbox等的一般組件。 (4)查詢使用

17、findkey方法來實現(xiàn)。 8.8 其他bde組件 8.8.1 tstoreproc組件 (1)storedprocname屬性 (2)params屬性 (3)paramcount屬性 (4)create方法 (5)execproc方法 8.8.2 tdatabase組件 1. tdatabase組件的常用屬性 (1)aliasname屬性 (2)connected屬性 (3) databasename屬性 (4)exclusive屬性 (5)keepconnection屬性 2. tdatabase組件的常用事件 (1)applyupdates方法 (2)close方法 (3)commit方法 (4)rollback方法 (5)starttransaction方法 小結 利用bde組件中的ttable組件能夠快速地開發(fā)出功 能強大的數(shù)據(jù)庫應用程序。ttable組件的作用主要是 建立與物理表

溫馨提示

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

評論

0/150

提交評論