亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2011-10-16 12:15:16鮑海燕
        太原科技大學(xué)學(xué)報 2011年4期
        關(guān)鍵詞:數(shù)據(jù)庫功能

        鮑海燕

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

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

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

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

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

        Delphi包含了集成的代碼編輯器、Database Formwizard、加速可瀏覽的數(shù)據(jù)庫表單、DataModule Designer以及用于多個表單間的數(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選項卡上。訪問數(shù)據(jù)庫中的一個或多個表的字段需要用到TTable、TQuery和TStoredproc三個控件。學(xué)習(xí)者對它們的進行操作時可以將這些控件視為“虛擬”的數(shù)據(jù)庫,即對數(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ù)庫的字段對象

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

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

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

        數(shù)據(jù)瀏覽控件頁上的控件,主要用于設(shè)計用戶界面,對數(shù)據(jù)庫中的數(shù)據(jù)進行瀏覽、編輯、插入、刪除等操作。數(shù)據(jù)瀏覽控件為開發(fā)Delphi數(shù)據(jù)庫應(yīng)用程序提供可視化的用戶界面,應(yīng)用程序無論是訪問本地數(shù)據(jù)庫中的數(shù)據(jù)文件,還是訪問遠程數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)文件,用戶界面都是一致的,即數(shù)據(jù)庫的物理位置對數(shù)據(jù)瀏覽控件是透明的。Delphi中常用的數(shù)據(jù)庫瀏覽控件有:TDBGrid控件,用于在控件中顯示和編輯整個表或者整個數(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è)計里最重要的關(guān)鍵組件是與數(shù)據(jù)庫連接的TTable控件(Ttable或TADOTable組件),這個數(shù)據(jù)庫連接控件負責(zé)連接數(shù)據(jù)庫文件中的表。通過此控件的相關(guān)方法、屬性、事件執(zhí)行新增、編輯、刪除、取用數(shù)據(jù)等操作,也可直接連接。當連接控件連接數(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對數(shù)據(jù)庫的操作可以利用BDE(數(shù)據(jù)庫引擎)進行。BDE數(shù)據(jù)庫應(yīng)用程序首先利用Delphi提供的數(shù)據(jù)庫控件與BDE建立聯(lián)系,然后通過BDE與數(shù)據(jù)庫聯(lián)系。它主要對Delphi數(shù)據(jù)庫的應(yīng)用程序所使用的別名進行管理,配置驅(qū)動程序等信息。利用它實現(xiàn)與相應(yīng)數(shù)據(jù)庫應(yīng)用程序的鏈接。

        BDE被自動包含在Delphi中。應(yīng)用程序并不需要直接操作BDE,僅需要連接數(shù)據(jù)訪問組件和BDE,再由BDE去訪問數(shù)據(jù)庫,即可完成對數(shù)據(jù)庫的操作。對于本地數(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ù)提供了一個高性能、高兼容性的數(shù)據(jù)訪問接口,它既能實現(xiàn)數(shù)據(jù)庫前端的創(chuàng)建,又能實現(xiàn)中間層的設(shè)計,ADO的應(yīng)用范圍涵蓋了從一層到多層數(shù)據(jù)庫的解決方案以及基于Web的數(shù)據(jù)驅(qū)動解決方案。

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

        3.3 DBExpress方法

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

        DBExpress使用了單向數(shù)據(jù)集,能夠向數(shù)據(jù)庫服務(wù)器發(fā)送SQL指令,如果返回數(shù)據(jù),也能夠獲得訪問這些數(shù)據(jù)的游標。但是,它只能處理單向、只讀的游標,不在內(nèi)存中進行數(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ù)據(jù)庫的時間分別是1.831 s、1.625 s、1.465 s,可以看出DBExpress略勝一籌。

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

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

        使用BDE、ADO、DBExpress查詢大量隨機資料的時間分別是 4.287 s、3.014 s、1.203 s,DBExpress在這一方面也以3倍的時間勝出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è)計方案

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

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

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

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

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

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

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

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

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

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

        5 結(jié)束語

        通過對基于Delphi平臺的數(shù)據(jù)庫程序設(shè)計的原理、各組件功能應(yīng)用以及數(shù)據(jù)庫的連接方法的介紹,通過測試程序?qū)Ρ?BDE、ADO、DBExpress連接數(shù)據(jù)庫方法的存取訪問時間,得出DBExpress方法是遙遙領(lǐng)先于BDE、ADO的,大大提高了Delphi程序設(shè)計中數(shù)據(jù)庫存取和訪問的效率,最后總結(jié)了Delphi數(shù)據(jù)庫開發(fā)的步驟及設(shè)計和解決方案,便于使用基于Delphi平臺的數(shù)據(jù)庫程序設(shè)計使用者學(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]李新宇,鄭麗群,吳志強.ORACLE分布式數(shù)據(jù)庫及應(yīng)用[J].計算機應(yīng)用,2007(22):71-91.

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

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

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

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

        猜你喜歡
        數(shù)據(jù)庫功能
        也談詩的“功能”
        中華詩詞(2022年6期)2022-12-31 06:41:24
        關(guān)于非首都功能疏解的幾點思考
        數(shù)據(jù)庫
        財經(jīng)(2017年15期)2017-07-03 22:40:49
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        懷孕了,凝血功能怎么變?
        媽媽寶寶(2017年2期)2017-02-21 01:21:24
        “簡直”和“幾乎”的表達功能
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        中西醫(yī)結(jié)合治療甲狀腺功能亢進癥31例
        成人午夜视频一区二区无码| 免费a级毛片无码a∨中文字幕下载 | 免费观看交性大片| 免费人成视频在线观看网站| 成人在线免费视频亚洲| 在线高清亚洲精品二区| 久久久99精品成人片| 国产精品白丝喷水在线观看| 偷亚洲偷国产欧美高清| 国产一区二区三区特区| 日本高清在线一区二区三区| 国产性生交xxxxx免费| 亚洲三级香港三级久久| 国产自拍三级黄片视频| 国产成人国产三级国产精品| 国内精品久久久久久久97牛牛| 国产一区二区波多野结衣| 国产又黄又爽视频| 亚洲麻豆av一区二区| 午夜少妇高潮在线观看| 人人人妻人人澡人人爽欧美一区| 国产乱理伦片在线观看| 亚洲AV日韩AV高潮喷潮无码| 日本视频在线观看一区二区| 久久久久久亚洲av成人无码国产 | 国产亚洲欧洲AⅤ综合一区| 国产少妇露脸精品自拍网站| 五月天激情电影| 国产高潮国产高潮久久久| 丰满人妻AV无码一区二区三区| 免费看黄视频亚洲网站| 最新国产精品久久精品| 欧美伊人网| 国产一级自拍av播放| www国产亚洲精品久久麻豆| 2019最新国产不卡a| 无码人妻少妇久久中文字幕| 精品国产一区二区三区av免费| 国产xxxxx在线观看| 精品亚洲午夜久久久久| 91乱码亚洲精品中文字幕|