東北大學(xué)數(shù)據(jù)庫開發(fā)技術(shù)課件第7章Delphi數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)技術(shù).ppt_第1頁
東北大學(xué)數(shù)據(jù)庫開發(fā)技術(shù)課件第7章Delphi數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)技術(shù).ppt_第2頁
東北大學(xué)數(shù)據(jù)庫開發(fā)技術(shù)課件第7章Delphi數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)技術(shù).ppt_第3頁
東北大學(xué)數(shù)據(jù)庫開發(fā)技術(shù)課件第7章Delphi數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)技術(shù).ppt_第4頁
東北大學(xué)數(shù)據(jù)庫開發(fā)技術(shù)課件第7章Delphi數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)技術(shù).ppt_第5頁
已閱讀5頁,還剩115頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第7章 Delphi數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)技術(shù),7.1 數(shù)據(jù)庫應(yīng)用系統(tǒng)實(shí)施的步驟與方法 7.2 Delphi 兩層數(shù)據(jù)庫應(yīng)用系統(tǒng)的支持技術(shù) 7.3 數(shù)據(jù)庫引擎管理器 7.4 連接ODBC數(shù)據(jù)庫 7.5 數(shù)據(jù)集控件 7.6 數(shù)據(jù)控制控件 7.7 報(bào)表控件,7.1 數(shù)據(jù)庫應(yīng)用系統(tǒng)實(shí)施的步驟與方法,圖7-1 數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)步驟和階段成果,開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)是Delphi的強(qiáng)項(xiàng)。要建立數(shù)據(jù)庫應(yīng)用系統(tǒng),除了要熟悉有關(guān)Delphi組件和object Pascal外,還要精通DBMS及數(shù)據(jù)庫建立的方法。數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)步驟如下:,7.2 Delphi 兩層數(shù)據(jù)庫應(yīng)用系統(tǒng)的支持技術(shù),數(shù)據(jù)庫應(yīng)用系統(tǒng)主要采用兩層結(jié)構(gòu)和三層結(jié)構(gòu)的架構(gòu)。兩層數(shù)據(jù)庫系統(tǒng)是指C/S(客戶服務(wù)器)結(jié)構(gòu)或B/S(瀏覽器服務(wù)器)結(jié)構(gòu),而三層結(jié)構(gòu)是客戶、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器的系統(tǒng)結(jié)構(gòu)。delphi 7支持兩層數(shù)據(jù)庫應(yīng)用系統(tǒng)結(jié)構(gòu)的技術(shù)有BDE技術(shù)、ADO技術(shù)、dbExpress技術(shù)和InterBass技術(shù)4種。作為重點(diǎn),主要介紹BDE技術(shù)及使用方法。,7.2.1 基于BDE技術(shù)的兩層數(shù)據(jù)庫系統(tǒng),BDE為Delphi數(shù)據(jù)庫應(yīng)用程序訪問各種數(shù)據(jù)庫提供了一致的接口。它具有以下一些特點(diǎn): 通過BDE訪問任何一種格式的數(shù)據(jù)庫,用戶不必修改程序代碼,只需在BDE中設(shè)置新的數(shù)據(jù)庫的服務(wù)器名或者路徑即可。, BDE非常適合開發(fā)大型的客戶機(jī)/服務(wù)器應(yīng)用程序. 如果要讓BDE能訪問一個(gè)新的數(shù)據(jù)庫,只要在系統(tǒng)中安裝新數(shù)據(jù)庫的BDE驅(qū)動程序或者ODBC驅(qū)動程序就可以了。 BDE是32位的數(shù)據(jù)庫引擎,支持多線程和有優(yōu)先級的多任務(wù)處理,多個(gè)應(yīng)用程序可以同時(shí)運(yùn)行并訪問同一個(gè)數(shù)據(jù)庫。,基于BDE技術(shù)的兩層數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)如圖,圖7-2 基于BDE技術(shù)的兩層數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu),7.2.2 ADO技術(shù)支持的兩層數(shù)據(jù)庫系統(tǒng),ADO(ActiveX Data Object)是微軟公司推出的一種數(shù)據(jù)訪問技術(shù),它和ODBC(Open Database Connection) 、RDS(Remote Data Service)一起稱為MDAC(MicroSofe Data Access Compenents)。使用ADO技術(shù)時(shí),需要安裝MDAC,而Delphi 7在安裝時(shí)也會自動安裝MDAC。采用ADO技術(shù)也可以通過ODBC訪問數(shù)據(jù)源。,基于ADO技術(shù)的兩層數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)如圖,圖7-2 基于ADO技術(shù)的兩層數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu),7.2.3 dbExpress技術(shù)支持的兩層數(shù)據(jù)庫系統(tǒng),dbExpress是一種數(shù)據(jù)訪問標(biāo)準(zhǔn),它包括一組支持?jǐn)?shù)據(jù)庫存取的驅(qū)動程序和組件。 dbExpress可以用于windows下的Delphi,也可以用于Linux平臺上的Kylix,能夠進(jìn)行不同平臺的數(shù)據(jù)交換,便于開發(fā)跨平臺的數(shù)據(jù)庫應(yīng)用系統(tǒng)。 dbExpress支持兩層的數(shù)據(jù)庫系統(tǒng),也支持多層數(shù)據(jù)庫系統(tǒng)。,基于 dbExpress 技術(shù)的兩層數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)如圖,圖7-2 基于dbExpress技術(shù)的兩層數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu),7.2.4 Interbase技術(shù)支持的兩層數(shù)據(jù)庫系統(tǒng),Interbase是Borland公司開發(fā)的一種關(guān)系數(shù)據(jù)庫管理系統(tǒng)。Delphi提供了專門的Interbase組件,可以快速高數(shù)地訪問Interbase數(shù)據(jù)庫?;贗nterbase的兩層數(shù)據(jù)庫系統(tǒng)的系統(tǒng)結(jié)構(gòu)如圖;,7.3 數(shù)據(jù)庫引擎管理器,1數(shù)據(jù)庫別名的管理 2驅(qū)動程序的管理 3系統(tǒng)配置,圖7-2 BDE Administrator運(yùn)行界面,圖7-3 設(shè)置數(shù)據(jù)庫驅(qū)動程序名,圖7-4 Paradox數(shù)據(jù)庫的BDE別名,圖7-5 BDE Administrator管理驅(qū)動程序的界面,圖7-6 BDE Administrator的系統(tǒng)配置,7.4 連接ODBC數(shù)據(jù)庫,配置ODBC驅(qū)動程序: 安裝ODBC驅(qū)動程序,打開Windows的控制面板,雙擊“ODBC Data Source(32bit)”,打開ODBC Data Source Administrator對話框,如圖7-7所示。 單擊“Add”按鈕,就會打開創(chuàng)建新數(shù)據(jù)源對話框,如圖7-8所示。,這里從驅(qū)動程序列表中選擇“Microsoft Access Driver(*.mdb)”,并單擊“完成”按鈕,則會打開ODBC Microsoft Access Setup對話框,如圖7-9所示。選擇Configuration頁框,展開Drivers節(jié)點(diǎn),然后用鼠標(biāo)右鍵單擊ODBC,從彈出的菜單中選擇“New”選項(xiàng),這時(shí)將打開New ODBC Driver對話框,如圖7-10所示。,接著,展開Database頁框,選擇“Object”菜單上的“New”命令,打開New Database Alias對話框,如圖7-11所示。其中,選擇ODBC-access作為數(shù)據(jù)庫驅(qū)動程序,單擊“OK”。輸入完整的別名accesstry如圖7-12所示。最后,選擇Object菜單上的Apply命令,將新建的別名保存到BDE配置文件中。,圖7-7 ODBC Data Source Administrator對話框,圖7-8 創(chuàng)建新數(shù)據(jù)源對話框,圖7-9 ODBC Microsoft Access Setup對話框,圖7-10 New ODBC Driver對話框,圖7-11 New Database Alias對話框,圖7-12 新的別名,7.5 數(shù)據(jù)集控件,7.5.1 數(shù)據(jù)訪問控件簡介 7.5.2 數(shù)據(jù)集控件及其應(yīng)用 7.5.3 TTable控件及其使用 7.5.4 TQuery控件及其使用 7.5.5 TDataSource控件及其使用,7.5.1 數(shù)據(jù)訪問控件簡介,圖7-34 BDE控件欄,VCL組件的公共屬性,7.5.2 數(shù)據(jù)集控件及其應(yīng)用,1數(shù)據(jù)集控件的狀態(tài) 非活動狀態(tài)(Inactive) 瀏覽狀態(tài)(Browse) 編輯狀態(tài)(Edit) 插入狀態(tài)(Insert) 查找狀態(tài)(SetKey) 處理計(jì)算字段狀態(tài)(CalcFields),2數(shù)據(jù)集的打開和關(guān)閉 (1)打開數(shù)據(jù)集 方法1:通過設(shè)置數(shù)據(jù)集控件的Active屬性為True來打開與數(shù)據(jù)集相連的數(shù)據(jù)庫表。 方法2:調(diào)用數(shù)據(jù)集控件的Open方法,打開與數(shù)據(jù)集控件相連的數(shù)據(jù)庫表,這種方法只能在程序運(yùn)行過程中通過程序進(jìn)行。,(2)關(guān)閉數(shù)據(jù)集 方法1:設(shè)置數(shù)據(jù)集控件的Active屬性為False,以關(guān)閉與數(shù)據(jù)集控件相連的數(shù)據(jù)庫表。 方法2:調(diào)用Close方法以關(guān)閉與數(shù)據(jù)集控件相連的數(shù)據(jù)集表。,3數(shù)據(jù)集的瀏覽,表7-1 數(shù)據(jù)集的瀏覽方法,表7-2 數(shù)據(jù)集的瀏覽屬性,4數(shù)據(jù)集中的數(shù)據(jù)維護(hù),表7-3 數(shù)據(jù)集中數(shù)據(jù)維護(hù)的方法,7.數(shù)據(jù)集的書簽 有關(guān)書簽操作,Delphi提供了三個(gè)方法: GetBookMark GotoBookMark FreeBookMark,7.數(shù)據(jù)集控件與數(shù)據(jù)控制控件的連接 數(shù)據(jù)集控件具有三個(gè)方法,用于控制數(shù)據(jù)集控件和與其相連的數(shù)據(jù)控制控件之間的連接,以及控制數(shù)據(jù)控制控件的顯示。它們是DisableControls方法、EnableControls方法、Refresh方法。,數(shù)據(jù)集控件的事件 BeforeOpen/Afteropen:在數(shù)據(jù)集控件打開之前/之后被觸發(fā)。 BeforeClose/Afterclose:在數(shù)據(jù)集控件關(guān)閉之前/之后被觸發(fā)。 BeforeInsert/AfterInsert:在數(shù)據(jù)集控件進(jìn)入插入狀態(tài)之前/之后被觸發(fā)。 BeforeEdit/AfterEdit:在數(shù)據(jù)集控件被編輯之前/之后被觸發(fā)。, BeforePost/AfterPost:在數(shù)據(jù)集控件保存被修改的記錄之前/之后被觸發(fā)。 BeforeCancel/AfterCancel:在數(shù)據(jù)集控件取消進(jìn)一步操作之前/之后被觸發(fā)。 BeforeDelete/AfterDelete:在數(shù)據(jù)集控件刪除當(dāng)前記錄之前/之后被觸發(fā)。 OnNewRecord:當(dāng)建立一條新記錄時(shí)被觸發(fā)。 OnCalcFields:當(dāng)為表中的計(jì)算字段計(jì)算字段值時(shí)被觸發(fā)。,7.5.3 TTable控件及其使用,1TTabel控件的主要屬性 (1)DatabaseName屬性和TableName屬性 (2)KeyExclusive屬性 (3)IndexFields屬性和IndexFieldsCount屬性 (4)IndexName屬性和IndexFieldNames屬性 (5)Exclusive屬性 (6)ReadOnly屬性和CanModify屬性,2TTable控件的方法及應(yīng)用 (1)設(shè)定數(shù)據(jù)庫表的使用范圍 (2)查詢數(shù)據(jù)庫表 (3)生成數(shù)據(jù)庫表(如表7-4所示),表7-4 各個(gè)控件的屬性設(shè)置,7.5.4 TQuery控件及其使用,1TQuery控件的主要屬性和方法,2TQuery控件的靜態(tài)SQL查詢 使用TQuery控件建立靜態(tài)SQL查詢的步驟如下: (1)為TQuery控件設(shè)置DatabaseName屬性 (2)為TQuery控件設(shè)置SQL屬性 (3)設(shè)置TDataSource控件的DataSet屬性 (4)連接數(shù)據(jù)控制控件和TQuery控件 (5)執(zhí)行SQL語句,3TQuery控件的動態(tài)SQL語句 在程序中為SQL語句中的參數(shù)賦值通常有三種方法: (1)使用TQuery控件的Params屬性 (2)使用TQuery控件的ParamByName方法 (3)使用TParams對象的ParamValues屬性,表7-5 各個(gè)控件的屬性設(shè)置,7.5.5 TDataSource控件及其使用,1TDataSource控件的屬性 (1)DataSet屬性、(2)Enable屬性、(3)AutoEdit屬性 2TDataSource控件的事件 (1)OnDataChange事件、(2)OnUpdataData事件、(3)OnStateChange事件,7.6 數(shù)據(jù)控制控件,7.6.1 數(shù)據(jù)控制控件簡介 7.6.2 TDBGrid控件 7.6.3 TDBNavigator控件 7.6.4 TDBText控件 7.6.5 TDBEdit控件 7.6.6 TDBMemo控件 7.6.7 TDBImage控件,7.6.8 TDBListBox控件 7.6.9 TDBComboBox控件 7.6.10 TDBLookupListBox控件 7.6.11 TDBLookupComboBox控件 7.6.12 TDBCheckBox控件 7.6.13 TDBRadioGroup控件 7.6.14 其他控件,圖7-42 DataControls控件頁上的控件,7.6.1 數(shù)據(jù)控制控件簡介,數(shù)據(jù)控制控件是通過TDatasource控件連接到TTable控件中具體的字段控件的,因而數(shù)據(jù)控制控件具有一些共同的屬性,用于連接TDatasource控件和TField控件。 (1)Datasource屬性 (2)DataField屬性 (3)Enabled屬性 (4)ReadOnly屬性,表7-6 各數(shù)據(jù)控制控件概述,7.6.2 TDBGrid控件,1TDBGrid控件的主要屬性: (1)Options屬性 (2)DragMode屬性 (3)DefalultDrawing屬性 (4)Columns屬性,圖7-44 字段編輯對話框,2TDBGrid控件的主要事件及應(yīng)用,表7-7 TDBGrid控件中的主要事件,圖7-45 程序的設(shè)計(jì)界面,表7-8 各控件的主要屬性設(shè)置,7.6.3 TDBNavigator控件,1TDBNavigator控件的主要屬性 (1)VisibleButtons屬性 (2)ShowHint屬性 (3)Hints屬性,圖7-47 TDBNavigator控件,表7-9 TDBNavigator控件中的控制按鈕,2TDBNavigator控件的主要事件 TDBNavigator控件一個(gè)重要的事件是OnClick事件,它在TDBNavigator控件的某個(gè)按鈕被單擊并執(zhí)行相應(yīng)的操作之后觸發(fā)?;靖袷饺缦拢?procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);,7.6.4 TDBText控件,1TDBText控件的主要屬性 在應(yīng)用程序中一般要使用TDBText控件的DataSource屬性和DataField屬性。 2TDBText控件的應(yīng)用舉例 用TDBText控件顯示Customer.DB表中的Company字段信息,可以用如圖7-50所示的窗體來實(shí)現(xiàn)。主要屬性設(shè)置如表7-10所示。,圖7-50 程序設(shè)計(jì)界面,表7-10 圖中各控件的屬性設(shè)置,7.6.5 TDBEdit控件,1TDBEdit控件的主要屬性 TDBEdit控件專門用于顯示編輯數(shù)據(jù)庫表中當(dāng)前記錄的字段值。 2TDBEdit控件的應(yīng)用舉例 在圖7-51所示的窗體中,TDBEdit控件用于顯示和編輯Customer.DB表中當(dāng)前記錄的三個(gè)指定的字段,窗體中各控件的屬性設(shè)置如表7-11所示,程序運(yùn)行之后如圖7-52所示。,圖7-51 用TDBEdit控件顯示和編輯表中的數(shù)據(jù),表7-11 圖中各控件的屬性設(shè)置,圖7-52 用TDBEdit控件顯示和修改表中的數(shù)據(jù),7.6.6 TDBMemo控件,TDBMemo控件的主要屬性: (1)ReadOnly屬性 (2)MaxLength屬性 (3)ScrollBar屬性 (4)WordWrap屬性 (5)Alignment屬性 (6)AutoDisplay屬性,7.6.7 TDBImage控件,1TDBImage控件的主要屬性: (1)AutoDisplay屬性 (2)ReadOnly屬性 (3)Stretch屬性,2TDBImage控件的應(yīng)用舉例 下面舉一個(gè)使用TDBImage控件和TDBMemo控件的例子。程序的主窗體界面如圖7-53所示。其中主要控件的屬性設(shè)置如表7-12所示。,圖7-53 程序的設(shè)計(jì)界面,表7-12 窗體中各控件的屬性設(shè)置,7.6.8 TDBListBox控件,1TDBListBox控件的主要屬性 (1)IntegralHeight屬性 (2)Items屬性 (3)Style屬性 (4)ItemHeight屬性,2TDBListBox控件的應(yīng)用舉例 舉一個(gè)使用TDBListBox控件的例子。列表框的選項(xiàng)在設(shè)計(jì)時(shí)用String List Editor來進(jìn)行編輯。程序的主窗體的設(shè)計(jì)界面如圖7-56所示。其中主要控件的屬性設(shè)置如表7-13所示。程序的運(yùn)行界面如圖7-57所示。,圖7-56 使用TDBListBox控件的窗體設(shè)計(jì)界面,表7-13 屬性設(shè)置,圖7-57 程序運(yùn)行界面,7.6.9 TDBComboBox控件,1TDBComboBox控件的主要屬性 (1)Items屬性 (2)Style屬性 (3)DropDownCount屬性 (4)ItemHeight屬性 (5)Sorted屬性,圖7-58 TDBComboBox控件,2TDBComboBox控件的應(yīng)用舉例,圖7-59 使用TDBComboBox控件的程序運(yùn)行界面,7.6.10 TDBLookupListBox控件,表7-14 各控件屬性設(shè)置,圖7-60 使用TDBLookuplistbox控件的程序運(yùn)行界面,7.6.11 TDBLookupComboBox控件,TDBLookupComboBox控件外觀與TDBComboBox控件相同,但顯示在組合框中的數(shù)據(jù)也來自于查詢數(shù)據(jù)表。TDBLookupComboBox控件有關(guān)查詢條件的設(shè)置與TDBLookup-ListBox控件相同。,7.6.12 TDBCheckBox控件,TDBCheckBox控件是把字段的值與預(yù)設(shè)的兩個(gè)字符串比較,分別由ValueChecked屬性和ValueUnChecked屬性指定。如果字段的值與ValueChecked屬性指定的字符串相匹配,則選中復(fù)選框。如果字段的值與ValueUnChecked屬性指定的字符串相匹配,則不選中復(fù)選框。但這兩個(gè)屬性中的內(nèi)容對邏輯字段本身是不起任何作用的。,7.6.13 TDBRadioGroup控件,表7-15 各控件屬性設(shè)置,圖7-61 使用TDBRadioGroup控件的程序運(yùn)行界面,7.6.14 其他控件,1TDBCtrlGrid控件(如表7-16、圖7-62所示) 2TDBRichEdit控件 3TDBChart控件,表7-16 各控件屬性設(shè)置,圖7-62 使用TDBCtrlGrid控件的程序運(yùn)行界面,返回本節(jié),7.7 報(bào)表控件,7.7.1 報(bào)表控件簡介 7.7.2 制作報(bào)表實(shí)例 7.7.3 快速創(chuàng)建報(bào)表,7.7.1 報(bào)表控件簡介,QReport控件是一組用于為Delphi數(shù)據(jù)庫應(yīng)用程序制作報(bào)表的控件,在它的控件板中,一共有23個(gè)控件,位于控件欄的QReport控件選項(xiàng)卡中,如圖7-78所示。,圖7-78 QReport控件板,1、TQuickRep控件的主要屬性方法有:,2TQRBand控件 TQuickRep控件的主要屬性有: (1)BandType屬性 (2)ForceNewPage屬性 (3)BeforePrint屬性,3TQRSubDetail控件 TQRSubDetail控件的主要屬性有: (1)DataSet屬性 (2)Master屬性 (3)Bands屬性,4其他QReport控件 (1)TQRChildBand控件:一般用于在其中顯示備注信息。 (2)TQRLabel控件:用于在報(bào)表中顯示靜態(tài)的文本。 (3)TQRDBText控件:用

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論