国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Delhpi平臺(tái)的數(shù)據(jù)庫程序設(shè)計(jì)研究

2011-10-16 12:15鮑海燕
關(guān)鍵詞:字段控件程序設(shè)計(jì)

鮑海燕

(晉中學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山西 晉中 030600)

Delphi是Inprise公司開發(fā)的可視化編程環(huán)境,是當(dāng)今世界上最快的編輯器,最為先進(jìn)的數(shù)據(jù)庫技術(shù),適應(yīng)于多種數(shù)據(jù)庫結(jié)構(gòu)。Delphi獨(dú)特的Data-A-ware構(gòu)件,不需任何代碼就可很快做出一個(gè)相當(dāng)精巧的數(shù)據(jù)庫程序,而且可以在開發(fā)期就看到運(yùn)行期的結(jié)果。

在數(shù)據(jù)庫程序設(shè)計(jì)原理的基礎(chǔ)之上,通過運(yùn)用Delphi數(shù)據(jù)庫系統(tǒng)各組件功能以及改進(jìn)數(shù)據(jù)庫的存取方法,大大提高了編程效率。

1 Delphi數(shù)據(jù)庫程序設(shè)計(jì)的原理

Delphi開發(fā)的數(shù)據(jù)庫應(yīng)用程序提供了管理、存儲(chǔ)和維護(hù)信息的方法,采用多種多樣的方式管理信息。Delphi自帶四十多個(gè)預(yù)先建立的數(shù)據(jù)庫組件,借助于DBMS的API接口函數(shù),提供可視化編程環(huán)境。數(shù)據(jù)庫程序設(shè)計(jì)的原理是采用數(shù)據(jù)庫組織一定結(jié)構(gòu)的數(shù)據(jù),通過數(shù)據(jù)庫管理系統(tǒng)管理數(shù)據(jù)信息。前臺(tái)使用數(shù)據(jù)庫應(yīng)用程序可對(duì)數(shù)據(jù)庫管理系統(tǒng)存儲(chǔ)的數(shù)據(jù)進(jìn)行定義、操作、控制。

Delphi包含了集成的代碼編輯器、Database Formwizard、加速可瀏覽的數(shù)據(jù)庫表單、DataModule Designer以及用于多個(gè)表單間的數(shù)據(jù)訪問共享。組件面板的Data Access提供用于連接數(shù)據(jù)源的組件,Data Controls中的數(shù)據(jù)可視化組件用于從數(shù)據(jù)庫獲得數(shù)據(jù)或送數(shù)據(jù)到數(shù)據(jù)庫。ADO頁的組件使用ActiveX Data Objects技術(shù)通過OLE DB訪問數(shù)據(jù)庫信息,Inter-Base頁的組件用于直接訪問InterBase數(shù)據(jù)庫。

2 Delphi數(shù)據(jù)庫組件功能應(yīng)用

2.1 數(shù)據(jù)訪問組件

數(shù)據(jù)訪問控件在Delphi組件面板的Data Access選項(xiàng)卡上。訪問數(shù)據(jù)庫中的一個(gè)或多個(gè)表的字段需要用到TTable、TQuery和TStoredproc三個(gè)控件。學(xué)習(xí)者對(duì)它們的進(jìn)行操作時(shí)可以將這些控件視為“虛擬”的數(shù)據(jù)庫,即對(duì)數(shù)據(jù)庫操作。Delphi中常用的數(shù)據(jù)庫訪問控件及其功能應(yīng)用總結(jié)見表1.

表1 Delphi中常用的數(shù)據(jù)庫訪問控件及其功能應(yīng)用Tab.1 The common database access control of Delphi and its functions application.

2.2 數(shù)據(jù)庫的字段對(duì)象

Ttable和TQuery控件中有一個(gè)TField類型的屬性Fields,F(xiàn)ields是TField類型的對(duì)象列表。字段對(duì)象TField對(duì)記錄字段可能出現(xiàn)的每一種數(shù)據(jù)類型都有一個(gè)相對(duì)應(yīng)的、獨(dú)立的TField類型。在應(yīng)用程序中使用Fields Editor可以為數(shù)據(jù)庫表中的字段創(chuàng)建相應(yīng)的靜態(tài)的TField對(duì)象。

字段對(duì)象在應(yīng)用程序中可以動(dòng)態(tài)生成,也可以通過字段編輯器Fields Editor創(chuàng)建靜態(tài)的,它們雖然在設(shè)計(jì)和運(yùn)行階段都是不可見,但是它們都擁有自己的屬性、方法和事件,因此在應(yīng)用程序中可以對(duì)字段對(duì)象進(jìn)行控制和訪問。

2.3 數(shù)據(jù)瀏覽控件

數(shù)據(jù)瀏覽控件頁上的控件,主要用于設(shè)計(jì)用戶界面,對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行瀏覽、編輯、插入、刪除等操作。數(shù)據(jù)瀏覽控件為開發(fā)Delphi數(shù)據(jù)庫應(yīng)用程序提供可視化的用戶界面,應(yīng)用程序無論是訪問本地?cái)?shù)據(jù)庫中的數(shù)據(jù)文件,還是訪問遠(yuǎn)程數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)文件,用戶界面都是一致的,即數(shù)據(jù)庫的物理位置對(duì)數(shù)據(jù)瀏覽控件是透明的。Delphi中常用的數(shù)據(jù)庫瀏覽控件有:TDBGrid控件,用于在控件中顯示和編輯整個(gè)表或者整個(gè)數(shù)據(jù)集,以網(wǎng)格的形式顯示數(shù)據(jù)庫中的字段信息;TDBNavigator控件,提供了一組按鈕用于數(shù)據(jù)庫表中的導(dǎo)航,編輯修改,插入,刪除記錄以及刷新數(shù)據(jù)的顯示;除此之外,還有 DBtext,DBMemo,DBEdit,DBImage,DBListBox等控件用于顯示字段。

2.4 各控件之間的聯(lián)系

Delphi數(shù)據(jù)庫程序設(shè)計(jì)里最重要的關(guān)鍵組件是與數(shù)據(jù)庫連接的TTable控件(Ttable或TADOTable組件),這個(gè)數(shù)據(jù)庫連接控件負(fù)責(zé)連接數(shù)據(jù)庫文件中的表。通過此控件的相關(guān)方法、屬性、事件執(zhí)行新增、編輯、刪除、取用數(shù)據(jù)等操作,也可直接連接。當(dāng)連接控件連接數(shù)據(jù)庫文件中的表后,表的內(nèi)容無法連接控件并直接交付給數(shù)據(jù)庫瀏覽控件(如DBGrid)顯示出來,必須由DataSource組件來解析表的內(nèi)容,然后將解析后的表的內(nèi)容交付給數(shù)據(jù)庫瀏覽控件(如DBGrid)顯示出來,如圖1所示。

圖1 控件間的聯(lián)系Fig.1 The connection between the controls

3 Delphi中數(shù)據(jù)庫的連接方法

3.1 BDE 方法

Delphi對(duì)數(shù)據(jù)庫的操作可以利用BDE(數(shù)據(jù)庫引擎)進(jìn)行。BDE數(shù)據(jù)庫應(yīng)用程序首先利用Delphi提供的數(shù)據(jù)庫控件與BDE建立聯(lián)系,然后通過BDE與數(shù)據(jù)庫聯(lián)系。它主要對(duì)Delphi數(shù)據(jù)庫的應(yīng)用程序所使用的別名進(jìn)行管理,配置驅(qū)動(dòng)程序等信息。利用它實(shí)現(xiàn)與相應(yīng)數(shù)據(jù)庫應(yīng)用程序的鏈接。

BDE被自動(dòng)包含在Delphi中。應(yīng)用程序并不需要直接操作BDE,僅需要連接數(shù)據(jù)訪問組件和BDE,再由BDE去訪問數(shù)據(jù)庫,即可完成對(duì)數(shù)據(jù)庫的操作。對(duì)于本地?cái)?shù)據(jù)庫,用戶只需關(guān)心Delphi中的數(shù)據(jù)組件即可。

3.2 ADO 方法

ADO是Active Data Object的簡稱,與 BDE不同,ADO是Microsoft推出的新一代數(shù)據(jù)訪問規(guī)范,是微軟提供訪問數(shù)據(jù)庫的接口,可以快速訪問各種數(shù)據(jù)庫資源。ADO技術(shù)提供了一個(gè)高性能、高兼容性的數(shù)據(jù)訪問接口,它既能實(shí)現(xiàn)數(shù)據(jù)庫前端的創(chuàng)建,又能實(shí)現(xiàn)中間層的設(shè)計(jì),ADO的應(yīng)用范圍涵蓋了從一層到多層數(shù)據(jù)庫的解決方案以及基于Web的數(shù)據(jù)驅(qū)動(dòng)解決方案。

Delphi提供了對(duì)ADO的全力支持,提供了很多ADO組件,增加了一些新的字段類型如:Wide-String,GUID,Variant,interface,IDispatch 等。ADO是面向各種數(shù)據(jù)的層次很高的接口,它提供了強(qiáng)大的數(shù)據(jù)訪問功能,可以訪問的數(shù)據(jù)對(duì)象有:關(guān)系數(shù)據(jù)庫中的各種數(shù)據(jù);非關(guān)系型數(shù)據(jù)庫,如層次型數(shù)據(jù)庫,網(wǎng)狀數(shù)據(jù)庫等;電子郵件與文件系統(tǒng);文本與圖象、聲音;客戶事務(wù)對(duì)象。

3.3 DBExpress方法

DBExpress是在Kylix中引進(jìn)的一種操作數(shù)據(jù)速度快,而且與平臺(tái)無關(guān),易發(fā)布的 SQL數(shù)據(jù)庫存儲(chǔ)技術(shù)。DBExpress為每一種其支持的數(shù)據(jù)庫撰寫具有統(tǒng)一接口的 DBExpress驅(qū)動(dòng)程序,當(dāng)發(fā)布DBExpress程序時(shí),必須同時(shí)發(fā)布此驅(qū)動(dòng)程序(一個(gè)DLL文件)。

DBExpress使用了單向數(shù)據(jù)集,能夠向數(shù)據(jù)庫服務(wù)器發(fā)送SQL指令,如果返回?cái)?shù)據(jù),也能夠獲得訪問這些數(shù)據(jù)的游標(biāo)。但是,它只能處理單向、只讀的游標(biāo),不在內(nèi)存中進(jìn)行數(shù)據(jù)緩存,這樣可以提高數(shù)據(jù)存取速度并使用最少的資源。TSQLDataSet,TSQLQuery,TSQLTable,TSQLStoredProc 是 四 種DBExpress數(shù)據(jù)存取控件,一般推薦用通用的TSQLDataSet,它即可以向數(shù)據(jù)庫服務(wù)器發(fā)送命令,也可以處理任何數(shù)據(jù)。

3.4 BDE、ADO、DBExpress存取訪問速度比較

BDE、ADO、DBExpress在連接 InterBase時(shí),通過測(cè)試得知開啟數(shù)據(jù)庫的時(shí)間分別是1.831 s、1.625 s、1.465 s,可以看出DBExpress略勝一籌。

通過測(cè)試程序,讓 BDE、ADO、DBExpress隨機(jī)產(chǎn)生資料,并且移動(dòng)到資料庫之中。執(zhí)行測(cè)試的結(jié)果如表2所示,從這些數(shù)據(jù)中可以看出BDE、ADO、DBExpress存取訪問速度比較情況。

由表2可知,DBExpress幾乎以快3倍的速度在處理資料,把BDE及ADO遠(yuǎn)遠(yuǎn)的拋在后面。DBExpress除了在移動(dòng)資料的速度方面超過 BDE及ADO,在查詢資料方面也大幅領(lǐng)先。

使用BDE、ADO、DBExpress查詢大量隨機(jī)資料的時(shí)間分別是 4.287 s、3.014 s、1.203 s,DBExpress在這一方面也以3倍的時(shí)間勝出BDE及ADO。各種數(shù)據(jù)顯示,DBExpress處理各種資料效率幾乎都遙遙領(lǐng)先已經(jīng)發(fā)展數(shù)年之久的BDE及ADO。

表2 BDE、ADO、DBExpress存取訪問速度比較情況表Tab.2 The comparison table of access and visiting speed among BDE,ADO,DBExpress

4 Delphi數(shù)據(jù)庫開發(fā)的步驟

4.1 Delphi數(shù)據(jù)庫設(shè)計(jì)方案

Delphi數(shù)據(jù)庫設(shè)計(jì)方案中首先也是最重要的是系統(tǒng)分析,即把程序應(yīng)具備的主要功能根據(jù)自己或用戶的需要詳細(xì)列出;第二,列出一些通用功能和程序中相關(guān)的輔助功能;最后建立數(shù)據(jù)結(jié)構(gòu)。

有了設(shè)計(jì)方案,根據(jù)數(shù)據(jù)庫設(shè)計(jì)需要實(shí)現(xiàn)的功能,選擇相應(yīng)的數(shù)據(jù)庫和數(shù)據(jù)表格,包括每個(gè)數(shù)據(jù)表格應(yīng)該具備多少字段、長度,是否建立索引等。

4.2 數(shù)據(jù)庫流程設(shè)計(jì)

根據(jù)設(shè)計(jì)方案,寫出程序設(shè)計(jì)流程。為了指導(dǎo)以后程序的設(shè)計(jì),最好寫出每個(gè)功能模塊的基本流程。雖然在設(shè)計(jì)過程中可能會(huì)多次改動(dòng)程序,但這個(gè)基本流程會(huì)指導(dǎo)程序設(shè)計(jì)不會(huì)出現(xiàn)太大的偏差。

4.3 為數(shù)據(jù)庫準(zhǔn)備編程資源

根據(jù)設(shè)計(jì)方案需要完成的功能,列出需要的模塊,分層次、分結(jié)構(gòu)地分析可能需要的編程資源,儲(chǔ)備好這些編程資源,以備后用。

4.4 程序整體界面設(shè)計(jì)

根據(jù)程序設(shè)計(jì)的需求,可以大概的設(shè)計(jì)登錄界面以及主界面,可能需要用到菜單、狀態(tài)條、工具欄,MID窗口界面和文字等。在此基礎(chǔ)之上,進(jìn)行進(jìn)一步設(shè)計(jì),完善界面。

4.5 詳細(xì)系統(tǒng)分析及方案解決

對(duì)整個(gè)程序根據(jù)所需功能和程序流程進(jìn)行框架分析,依據(jù)分析的結(jié)果對(duì)一些問題提出解決方案。例如比較復(fù)雜的查詢,用一條SQL語句可能查詢不到所需的結(jié)果。遇到這種情況,可以分析利用別的方法來實(shí)現(xiàn),如利用臨時(shí)數(shù)據(jù)表格來實(shí)現(xiàn)。

5 結(jié)束語

通過對(duì)基于Delphi平臺(tái)的數(shù)據(jù)庫程序設(shè)計(jì)的原理、各組件功能應(yīng)用以及數(shù)據(jù)庫的連接方法的介紹,通過測(cè)試程序?qū)Ρ?BDE、ADO、DBExpress連接數(shù)據(jù)庫方法的存取訪問時(shí)間,得出DBExpress方法是遙遙領(lǐng)先于BDE、ADO的,大大提高了Delphi程序設(shè)計(jì)中數(shù)據(jù)庫存取和訪問的效率,最后總結(jié)了Delphi數(shù)據(jù)庫開發(fā)的步驟及設(shè)計(jì)和解決方案,便于使用基于Delphi平臺(tái)的數(shù)據(jù)庫程序設(shè)計(jì)使用者學(xué)習(xí)和應(yīng)用。

[1]JOHN AYRESS.The Tomes of Delphi(tm)Win32 Core API Windows 2000 Edition[M].USA:Wordware Publishing Inc,2010.

[2]李新宇,鄭麗群,吳志強(qiáng).ORACLE分布式數(shù)據(jù)庫及應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2007(22):71-91.

[3]譚燕,趙磊,李之明.Delphi高級(jí)輔助工具精解[M].北京:中國鐵道出版社,2008.

[4]葉核亞.Delphi程序設(shè)計(jì)[M].北京:人民郵電出版社,2008.

[5]周愛民.Delphi源代碼分析[M].北京:電子工業(yè)出版社,2004.

[6]劉瑞新.Delphi程序設(shè)計(jì)教程[M].北京:機(jī)械工業(yè)出版社,2006.

猜你喜歡
字段控件程序設(shè)計(jì)
圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
基于.net的用戶定義驗(yàn)證控件的應(yīng)用分析
基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
關(guān)于.net控件數(shù)組的探討
高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
CNMARC304字段和314字段責(zé)任附注方式解析
無正題名文獻(xiàn)著錄方法評(píng)述
關(guān)于CNMARC的3--字段改革的必要性與可行性研究
沛县| 边坝县| 宜兰市| 林甸县| 靖州| 金沙县| 昌邑市| 廊坊市| 株洲市| 景泰县| 龙山县| 宜君县| 宣武区| 额济纳旗| 古田县| 鄢陵县| 永兴县| 岳阳县| 金阳县| 黑水县| 扶风县| 大英县| 定西市| 丁青县| 旺苍县| 莱阳市| 宝丰县| 黄浦区| 麻阳| 平南县| 三明市| 库伦旗| 银川市| 上饶市| 商南县| 高平市| 潜山县| 湖南省| 乌鲁木齐县| 博爱县| 饶平县|