Delphi 第09章-數據庫編程_第1頁
Delphi 第09章-數據庫編程_第2頁
Delphi 第09章-數據庫編程_第3頁
Delphi 第09章-數據庫編程_第4頁
Delphi 第09章-數據庫編程_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第9章DelphiXE8數據庫編程Delphi程序設計教程(第3版)清華大學出版社楊長春主編數據庫系統(tǒng)主要由三大部分組成:(1)數據庫(按一定結構組織在一起的相關數據的集合)。(2)數據庫管理系統(tǒng)(DBMS:它是專門負責組織和管理數據信息的程序)。(3)數據庫應用程序(它使用戶能夠獲取、顯示和更新DBMS存儲的數據)。9.1數據庫系統(tǒng)開發(fā)基礎9.1.1數據庫的基本概念1.數據庫(DataBase)數據庫簡單的定義是:有蘊含著一定的意義的數據,一些按照一定的規(guī)律組織起來所組成的數據集合。在數據庫中除了用一些作為外部信息的數據之外,還有一些內部信息數據。這些數據定義了數據庫的用戶及其相應的權限,數據庫表單的定義等等,通常把存放這些數據的地方叫做數據字典。數據字典是有數據庫系統(tǒng)自行創(chuàng)建并自動維護的,它實際上也是數據庫的一組表和視圖,與其他的表單和試圖并沒有物理結構上的區(qū)別,唯一不同的是它的內容。2.關系數據庫(RelationalDataBase)關系數據庫是由若干個表組成的,每一張二維表對應著一種聯系。表的每一行稱為記錄;表的每一列叫做字段;域就是屬性的取值范圍。對于dBASE、FoxPro、Paradox這三種數據庫系統(tǒng),數據庫對應于某一個子目錄,而其他類型如MSAccess、Btrieve則是指某個文件。表(Table):一個表就是一組相關的數據按行排列,像一張表一樣。字段(Field):在表中,每一列稱為一個字段。每一個字段都用相應的描述信息,如數據類型、數據域等。記錄(Record):在表中,每一行稱為一條記錄。索引(Index):為了加快訪問數據庫的速度、許多數據庫都使用索引。主鍵(PrimaryKey,PK):主鍵是對于這張表的惟一標識,即一個列或幾個列的組合。主鍵最顯著的特點就是在任何給定的條件,沒有兩個主鍵包含相同的值,這個稱作主鍵的惟一性原則。同時主鍵中每一個屬性都不能被去掉,而同時仍能夠保持主鍵的惟一性,這個我們稱作主鍵的最小性原則。關系型數據庫系統(tǒng)具有很多優(yōu)點:(1)關系數據庫有深厚的理論基礎,它是基于關系代數和關系理論的模型。(2)以二維表的形式表示數據。(3)不需要用戶了解它在計算機中的物理存儲形式。(4)用系統(tǒng)表來提供其本身的內容和結構。(6)可以通過SQL語言來操縱。SQL語言是專門用于操作這種模型的語言。3.數據庫管理系統(tǒng)(DBMS)數據庫管理系統(tǒng)是一個用來管理數據庫的軟件,是數據庫能夠正常工作的核心。對數據庫的所有操作,包括創(chuàng)建各種數據庫的數據類型、表單、視圖、存儲過程,以及其他的數據庫應用程序對于數據庫中數據的讀取和修改,都是經由數據庫管理系統(tǒng)完成的。當數據庫應用程序把對于數據庫數據的操作指令通過數據庫管理系統(tǒng)的接口函數發(fā)送給數據庫管理系統(tǒng)后的一切工作都只是數據庫管理系統(tǒng)的的了,數據庫應用程序所要做的就只是等候數據庫管理系統(tǒng)把它所需要的數據給它,然后進行加工處理。4.數據庫應用程序數據庫應用程序是通過DBMS訪問數據庫中的數據并向用戶提供數據服務的程序。簡單地說,它們是允許用戶插入、刪除和修改并報告數據庫中數據的程序。這種程序是由程序員使用通用或者專用的程序設計軟件開發(fā)的。9.1.2數據庫設計過程1.數據庫的建立創(chuàng)建一個數據庫的過程有以下幾個步驟:(1)確定數據庫的使用范圍。(2)確定支持數據庫所需要的字段。(3)將字段劃分成一些合理的數據表。(4)確定數據表之間的關聯。在確定數據庫的需求后,要將這些需求劃分成幾個合理的數據表。

所謂合理的數據表,通常要滿足以下幾點:

數據表中的字段所描述的內容有一定的聯系。

數據表中至少有一個字段的記錄不是重復的。

一個數據表與數據庫其他的數據表中至少一個能夠關聯。

一個數據表與數據庫其他的同一數據表不要有多對多的關聯。2.數據表的結構在數據表結構中需要一個關鍵字段,數據表中的數據就是按主關鍵字段的順序存放的,而且利用主關鍵字能夠高效地與其他數據表建立關聯。索引也是數據表常用的,在數據庫中,利用索引可以加快訪問速度。9.1.3數據庫應用程序的開發(fā)步驟1.初步設計設計階段要根據用戶的需求,定義數據庫和應用程序的功能,確定用戶的需求功能哪些在設計階段實現,哪些在程序中實現。2.功能實現將客戶需求功能分成幾個合理的功能塊,分別進行程序設計、調試。

常見的劃分方法上分成四個功能塊:(1)信息處理(2)數據庫管理(3)系統(tǒng)維護(4)輔助功能信息處理是建立數據庫應用程序的目的。設計數據庫應用程序的目的是為客戶提供所需要的信息服務,輔助管理工作,提高工作效率和水平。信息處理最基本的功能包括各類信息查詢,統(tǒng)計報表等功能,對于特定的應用程序還可以有特定的功能。數據庫管理的主要功能是負責數據庫的更新、修改等。一個特定的數據庫管理操作要由它的用戶的權限決定,這個權限要由有權的用戶指定。系統(tǒng)維護的功能是保證數據庫應用程序運行的可靠性和安全性,一般包括用戶管理,口令設置,各類系統(tǒng)變量和數據字典維護等。3.運行和維護程序用戶在使用應用程序的過程中會對應用程序提出一些建議和要求,根據用戶的建議和要求對數據庫應用程序進行適當的修改和完善,從而提高程序的性能。9.2.1SQL語言的發(fā)展目前SQL語言被廣泛地使用,它具有強大的生命力,它使用所有數據庫用戶包括程序員、DBA管理員和終端用戶都受益非淺。SQL語言具有以下優(yōu)點:(1)SQL語言是所有關系數據庫的公共語言。(2)SQL是非過程化查詢語言。有兩種方式使用SQL語言:一種是在終端交互方式下使用,稱為交互式SQL語言;另一種是嵌入在高級語言編寫的程序中使用,稱為嵌入式SQL語言。9.2SQL結構化查詢語言基礎9.2.2SQL的基本查詢功能

SELECT語句是使用最多的SQL語句,它完成的是數據庫的查詢功能,SQLSELECT語句,從數據表中選擇出符合條件的記錄。

Distinct語句的作用是對某個表所選擇的字段數據,忽略重復的情況,也就是說,針對某個字段查詢出來的記錄結果是惟一的。1.TOP和ORDERBY語句

TOP語句實現從第一條或最后一條開始(利用ORDERBY條件子句),返回特定記錄的數據的功能。如果沒有加上ORDERBY條件的話,所得到的數據,將會是隨機的數據。此外,在TOP語句之后,除了可以加上數字以外,還可以利用保留字PERCENT來查詢。排序參數:ASC遞增順序排列,默認值。DESC遞減順序控制。

2.IN條件字句指定要查詢哪一個外部數據庫的表。3.HAVING條件子句指定一特定的分組記錄,并滿足HAVING所指定的條件或狀態(tài),但條件是針對分組的條件設置。4.GROUPBY條件子句依據指定的字段,將具有相同數值的記錄合并成一條。5.BETWEED…AND運算符決定某一數值是否介于特定的范圍之內。6.LIKE操作數將一字符串與另一特定字符串樣式比較,并將符合該字符串樣式的記錄過濾出來。

9.2.3SQL的其他應用1.SQL數字函數(1)AVG:算數平均數。(2)COUNT:計算記錄條數。(3)FIRST與LAST:返回某字段的第一條數據與最后一條數據。(4)MAX與MIN:返回某字段最大值與最小值。(5)SUM:返回某特定字段或是運算的總和數值。2.SQL查詢的嵌套嵌套的SQL查詢含義在于:在一個SQL語句中可以包含另一個SQL查詢語句,形成內部嵌套的查詢類型,SELECT語句構成的多層SQL查詢,必須用()將該語句括起來。3.SQL與數據庫的維護(1)表的建立CREATETABLE語句:我們可以利用這個命令,來建立一個全新的表,但前提則是數據庫必須已經存在。(2)表索引的建立CREATEINDEX語句:這個命令主要是對一個已經存在的表建立索引。(3)表的刪除DELETE語句:我們可以利用DELETE語句,將表中的記錄刪除。(4)SELECT…INTO語句:可以通過這個命令,利用已經存在的表查詢,來建立一個新表。(5)INNERJOIN操作數:當某一個共同的字段數據相等時,將兩個表的記錄加以組合。(6)UNION操作數:可以通過UNION操作數來建立連接的查詢條件,UNION操作數可以將兩個以上的表或是查詢的結果組合起來。(7)ALTER語句:在一個表建立后,利用ALTER語句,可以去修改表的字段設計。(8)DROP語句:針對所指定的表或字段加以刪除,或是把索引刪除。(9)INSERTINTO語句:新建一條數據到表當中。(10)UPDATE語句:建立一個UPDATE的查詢,通過條件的限制來修改特定的數據。

數據庫應用程序的功能是:使用數據訪問組件,通過數據引擎(提供數據庫驅動程序),建立與數據源(數據庫)的連接,并使用數據控制組件來創(chuàng)建用戶界面,以便用戶存取和操縱數據庫中的數據。9.3數據庫開發(fā)常用組件9.3.1數據集組件訪問數據庫,通常需要數據源,用DataSource組件描述數據源。但該組件不能直接表示數據,而是引用數據庫表、查詢結果或存儲過程。在窗體中還需要使用Table、Query或StoredProc組件,它們直接與數據庫連接,從中獲取數據。常稱之為數據集組件,它們通過BDE為應用程序提供與數據庫的連接。當要創(chuàng)建一個數據庫應用程序時,先在窗體上放一個數據集組件,然后為數據集組件設置有關的屬性,指定要訪問的數據庫、數據表以及表中的記錄等。9.3.2數據控制組件數據控制組件為用戶提供一個可對數據庫中數據進行瀏覽、編輯和輸入等數據操作的可視化界面,由于數據集組件是不可見的,所以,還必須使用可見的數據控制組件來提供數據庫的顯示,它們通過數據訪問組件DataSource相互連接,數據控制組件也稱為數據感知(Data-aware)組件。9.3.3數據訪問組件數據訪問組件DataSource負責雙方數據的收發(fā)。使用戶交互式地對數據庫進行查詢、修改、插入和刪除等操作。在同一個窗體上幾個數據控制組件可以連接到同一個DataSource組件,這幾個數據控制組件可以保持同步,因為數據控制組件總是顯示當前數據記錄的數據。DataSource組件最好放在數據模塊上,與用戶界面分開。

DataSource組件幾種重要屬性的意義如下:(1)DataSet屬性:指定相連的數據集組件。(2)AutoEdit屬性:確定連接的數據集組件是否自動處于編輯狀態(tài)。9.4.1建立ODBC數據源以Access數據庫為例說明創(chuàng)建ODBC數據源的方法。1.打開ODBC數據源管理器在BDE管理器窗口中,選擇Object菜單的ODBCAdministrator項,或使用Windows控制面板中的ODBC對象,打開ODBC數據源管理器窗口。為了便于訪問數據,Windows系統(tǒng)提供了ODBC數據源管理工具,該工具用來設置數據源的名字DSN(DataSourceName)。DSN是一個數據源的標志,目的是便于應用程序訪問數據,即只要某個數據設置了相應的DSN,應用程序就不必理會該數據庫存儲的位置和驅動程序,可以按DSN直接訪問數據庫。9.4三種常見的數據庫連接方式DSN有三種類型:(1)用戶DSN:只對設置它的用戶可見,而且只能在設置了該DSN的機器上使用。(2)系統(tǒng)DSN:對機器上的所有用戶都是可見的,包括NT服務。(3)文件DSN:將DSN的配置信息存在一個文件里,這樣的文件就叫文件DSN。2.選擇【用戶DSN】選項卡,單擊【添加】按鈕,打開創(chuàng)建數據源對話框。選擇MicrosoftAccessDriver(*.mdb),并單擊【完成】按鈕。3.在彈出的對話框中通過【選擇】按鈕選擇數據庫,或通過【創(chuàng)建】按鈕創(chuàng)建新數據庫,還可以修復和壓縮數據庫,還可通過“高級”按鈕設置登錄名稱和密碼。點【選擇】按鈕,選擇一個已經存在的Access數據庫C:\book.mdb數據庫4.輸入數據源的名稱“CCZUTest”,說明部分輸入一些對所創(chuàng)建的數據源進行描述的文字,也可不輸入,設置之后,單擊【確定】按鈕保存設置這樣就配置好了DSN,關閉ODBC數據源管理器。關閉所有使用BDE的應用程序,打開BDE管理器窗口,切換到DataBase頁,即可看到新建的ODBC數據源“CCZUTest”。9.4.2基于BDE的數據庫連接方式

DelphiXE8的Borland數據引擎(BDE)可直接訪問某些本地數據庫,包括dBASE,Paradox,FoxPro,MicrosoftAccess,Delphi安裝程序自動為這些數據庫安裝了驅動程序,并建立了相應的配置。如果將BDE與Borland的SQLLink驅動程序連接,可以訪問Oracle,Sybase,Informix,InterBase和IBMDB2數據庫。

1.BDE管理器

BDE管理器是管理Windows注冊表中的BDE系統(tǒng)配置信息和BDE配置文件(IDAPI.cfg)中的別名信息的可視化工具。選擇菜單項【開始】|【程序】|【BorlandDelphiXE8】|【BDEAdministrator】,即打開BDE管理器在BDE管理器窗口的Databases選項卡中,列出了可以使用的所有數據庫別名,以類似于Windows資源管理器的樹狀結構顯示出來。在Databases窗格列表中選擇一個別名,即可在Definition窗格查看和修改它的定義。2.數據庫別名在實際應用中,計算機尤其是文件服務器會經常更換。相應地,各種數據庫操作也要轉移到新數據庫服務器上進行,因而需要對數據庫重新定位。BDE通過數據庫別名(數據源)解決這個問題。在數據庫應用程序中,當數據從一個地方轉移到另一個地方時,只要修改別名重新定位數據庫位置即可,源程序不必修改。

3.配置數據庫驅動程序BDE管理器的Configuration選項卡用于顯示和配置相關數據庫的驅動程序,這些驅動程序可分為Native驅動和ODBC驅動兩類。同一種數據庫既可以有Native驅動,也可以有ODBC驅動,使用時按需要選擇一種即可。在Configuration窗格的驅動程序列表中選擇一個驅動程序,它的設置參數便會顯示在右側Definition窗格中,以便查看和修改。

配置好了驅動程序之后,執(zhí)行Object|Apply命令,將配置保存起來。然后切換到Databases選項卡,即可使用配置好的驅動程序來建立數據源。4.建立BDE數據源(1)右擊Databases頁,選擇快捷菜單New項。(2)在DatabseDriverName下拉列表中選擇一種數據庫驅動程序,單擊OK按鈕,生成一個數據源。如果選擇的是STANDARD,則自動生成名為Standard1的數據源,并顯示在Databases頁的樹形數據庫別名表中。(3)根據需要修改數據源的名稱,配置右側Definition頁中的參數值。(4)右擊剛創(chuàng)建的數據庫別名,選擇快捷菜單Apply項,按提示保存數據庫別名配置。

特別提醒:在Delphi7等早期版本中,BDE管理器會出現在開始菜單的Delphi列表內,用戶可以直接點擊并運行。而現在本教材所使用的DelphiXE8版本中默認不出現在開始菜單列表項中,需要用戶在XE8安裝完畢后自行去下圖所在的路徑中尋找bdeadmin.exe文件并運行,用戶也可創(chuàng)建一個快捷圖標在桌面上供后續(xù)使用。1ADO組件介紹

ADO組件(DelphiXE8中稱為dbGo組件)位于DelphiXE8組件面板上的dbGo頁,如圖所示,這些組件可用于連接ADO數據存儲、執(zhí)行命令、檢索基于ADO機制的數據庫表中的數據。多數ADO組件都能在按其功能在BDE組件面板中找到相應的組件。9.4.3基于ADO的數據庫連接方式1.ADOConnection

ADOConnection組件位于ADO組件板的第一個組件,該組件用于與數據庫建立連接。TADOConnection組件中還有兩個屬性:CommandTimeout和ConnectionTimeout。這兩個屬性主要用于連接遠程數據庫時相關參數的設定。

ADOConnection組件和BDE組件板中的Database組件功能相似。2.ADOCommand

ADOCommand組件位于ADO組件板的第二個組件,該組件有CommandType與CommandText兩個重要屬性。3.ADODataSet

ADODataSet組件位于ADO組件板的第三個組件,通過ADODataset組件,可以直接與一個表進行連接,也可以執(zhí)行SQL語句,還可以執(zhí)行存儲過程。在使用時,首先設定其Connection屬性為ADOConnection組件,沒有ADOConnection組件就直接設定ConnectionString屬性。接著有兩個重要屬性CommandType與CommandText需要設定。4.ADOQuery

ADOQuery組件位于ADO組件板的第四個組件,提供數據庫連接接口一致化。5.ADOTable

ADOTable組件位于ADO組件板的第五個組件,如果程序中使用ADOConnection連接組件,直接設定該組件的Connection屬性為ADOConnection組件即可。另外一個重要屬性就是Active屬性,該屬性用來設置打開或關閉與該組件相連數據表。其值若為True,則打開數據表;若為False,則關閉數據表。

ADOTable組件與BDE中的Table組件對應。6.ADOStoredProc

ADOStoredProc組件位于ADO組件板的第六個組件,用于完成數據存儲過程。ADOStoredProc組件與BDE中的組件StoredProc對應。9.4.3.2通過ADO連接數據庫1.構造連接字符串(1)在對象觀察中選擇數據集組件的ConnectionString屬性,單擊屬性項右側的符號按鈕,打開連接字符串對話框。(2)連接字符串對話框中有兩個單選項,提供了兩種不同的連接方式?!袷褂脭祿溄游募簲祿溄游募且粋€擴展名為.UDL的文件,其中存放了一個連接字符,用戶可以預先建立數據鏈接文件,以便連接字符串能夠重復利用?!袷褂眠B接字符串:選擇了該項就需要自己創(chuàng)建一個連接字符串??梢栽谙鄳奈谋究蛑墟I入一個連接字符串,但一般來說,還要進行數據引擎的選擇,所以,應單擊Build按鈕,打開數據鏈接屬性對話框。(3)選擇數據庫引擎。在對話框的Provider頁,選擇要連接的OLEDB提供者。(4)選擇了數據提供者之后,可以單擊“下一步”按鈕或選擇“連接”選項卡,該選項卡會按前面選擇的數據提供者的不同而顯示不同的設置項。2.連接本地數據庫對數據庫的存取和控制稱為數據庫操縱,包括數據的查詢、讀取、插入、刪除和更新等各種操作。既可利用DelphiXE8本身的功能進行數據庫操縱,也可使用通用數據庫的結構化查詢語言(SQL)來進行。9.5數據庫操縱9.5.1字段的操作

DelphiXE8用字段對象(TField組件)來表示數據集中的字段。字段對象附屬于數據集組件,在程序設計和運行過程中都是不可見的。每當數據集組件從數據庫中獲得數據時,就將其(當前記錄)放入字段對象中。利用字段對象可取得當前字段的值,設置它的值,而且能夠通過修改字段對象的屬性來改變數據集。字段對象的創(chuàng)建有兩種方式:(1)在應用程序打開數據集時自動創(chuàng)建。將數據集組件的Active屬性設為True,或執(zhí)行它們的Open方法,即可創(chuàng)建字段對象。這種方式稱為動態(tài)創(chuàng)建。這樣創(chuàng)建的字段對象在單元文件中沒有聲明語句。當數據集關閉,即當數據集組件的Active屬性設為False或執(zhí)行它們的Close方法時,便會自動撤消。

(2)通過字段編輯器創(chuàng)建字段對象。這種方式創(chuàng)建的字段對象稱為靜態(tài)字段對象,在關閉數據集時不會撤消。1.字段的數據類型一個字段對象用來表示數據集中一列的特征,也用于表示字段的顯示特征,另外,當在數據集的記錄之間滾動時,字段對象將更新當前字段的值,并顯示給用戶查看。

數據集中的字段有多種數據類型,每種數據類型都有一個獨立的TField類型與之對應。常用的TField類型有:TBooleanField(布爾型)、TCurrencyField(貨幣型)、TStringField(字符串型)、TIntegerField(整數)、TFloatField(浮點型)和TBLOB(二進制對象)。使用最多的是TStringField和TIntegerField類型的字段對象。2.字段對象的訪問(1)數據集組件有一個默認的數組屬性FieldValues,這個數組以Variant類型返回字段的值,利用它可以存取字段值,利用它可以存取字段值。(2)利用數據集組件的數組屬性Fields也可以存取字段的值。Fields屬性的每個元素都代表一個字段,這樣就可以按序號(從0開始)來訪問字段的值。(3)利用數據集組件的FieldByName方法,通過列名也可訪問字段對象。FieldByName方法以數據集的字段名作為參數(用引號)。(4)編輯當前記錄中一個字段的操作步驟如下:●調用數據集組件的Edit方法,使數據集處于編輯狀態(tài)?!窠o當前字段賦新值?!裾{用Post方法將數據的變化提交給數據集。(5)在數據集中插入或刪除記錄時需以下操作:●調insert或append方法,使數據集處于相應模式?!駥祿械淖侄钨x值?!裾{用方法將數據的變化提交給數據。

3.創(chuàng)建靜態(tài)字段創(chuàng)建靜態(tài)對象要用到字段編輯器。(1)雙擊Table組件,打開字段編輯器。(2)右擊字段編輯器,選擇ADDFields項,彈出添加字段對話框。(3)在添加字段對話框中選定要創(chuàng)建靜態(tài)字段對象的字段,單擊OK按鈕,將選定的字段添加到字段編輯器中。4.訪問靜態(tài)字段選擇要設置屬性的字段,在對象觀察器中修改字段對象的屬性。1.Alignment:設置字段在數據控制組件中的對齊方式,左對齊、右對齊和居中。2.DisplayLabel:說明字段對象咱DBGrid組件中的顯示的標題,默認為字段對象名稱。3.DisplayWidth:字段對象在DBGrid組件中顯示的列的寬度。4.FileName:字段對象對應的字段名稱。5.Index:字段對象在DataSet組件中的索引號,從0開始。6.Name:字段對象名。7.ReadOnly:相應字段是否能修改。8.Visible:相應字段是否在DBGrid中顯示。9.EditMask:設置掩碼編輯格式。10.MaxValue和MinValue:設置字段最大最小值,超范圍時產生EdatabaseError異常。靜態(tài)字段對象的訪問相對于動態(tài)字段對象來要簡單得多,在程序中可以直接通過字段對象的名稱(即Name屬性)來訪問。

9.5.2使用Tabel組件的記錄查找在數據集中檢索記錄中有幾種方式:一是使用Locate函數或Lookup函數進行檢索;二是使用GotoKey方法或FindKey方法,基于索引關鍵字進行檢索;三是使用GotoNearest方法或FindNearrest方法,執(zhí)行非精確匹配檢索。1.使用Locate方法的通用查找

Table組件的Locate方法和Lookup方法可以在任何數據表中按任何類型的字段來搜索記錄,數據表不必建立索引。

Locate方法用來在數據表中搜索一條符件條件的記錄,如果找到的話,該記錄即可成為當前記錄。在使用Locate方法執(zhí)行查詢之前,先要調用SetKey方法,將連接表的Table組件設置成查詢狀態(tài)。2.使用GotoKey方法的索引查找

Table組件的GotoKey方法可以基于索引中的字段搜索匹配的記錄,并使找到的記錄成為當前記錄。

使用GotoKey方法查找步驟如下:(1)確保待查字段是關鍵字段(索引中的字段)或已經為它定義了輔助索引。(2)調用SetKey方法,將連接表的Table組件設置成為查詢狀態(tài)。(3)為每個待查字段設置目標值。(4)調用GotoKey方法實現查詢,并測試它的返回值判斷查詢是否成功。3.使用FindKey方法的索引查找將設置查找狀態(tài)、設置查找值,以及執(zhí)行查找集中在一個方法調用中實現。FindKey方法接受的參數是放在方括號中的,是用逗號分開的查找值數組。數組中的每個值都對應于特定字段的查找值,即參數中允許有多個查找值,FindKey允許用戶同時查找數據集中的多個字段。4.使用GotoNearest和FindNearest方法的近似查找不要求查找結果與查找值精確匹配。如果找到與指定值匹配的記錄,則將記錄指針到該記錄處,否則,將會出與指定值最接近的記錄并將記錄指針指向它。

9.5.3使用Query組件的SQL查詢1.連接數據庫表使用Query組件構造數據庫應用程序需要一個DataSource組件來和數據控制組件相連,而且也要通過DataBaseName屬性指定數據庫名稱或目錄路徑。Query組件和Table組件的不同之處在于,它沒有TableName屬性,而是用SQL屬性編寫語句和某個數據集相連并相連并選擇要顯示的域。2.SQL命令文本的編寫(1)使用字符串列表編輯器編寫利用Query組件的SQL屬性打開字符串列表編輯器,鍵入SQL語句之后,單擊OK按鈕可將編輯器中的SQL命令文本裝入SQL屬性中。也可右擊編輯器,選擇Save項,將編好的SQL命令保存到一個文件中供使用。打開字符串列表編輯器之后,還可右擊編輯器,選擇快捷菜單的Load項,從一個SQL命令文件中調入SQL命令。(2)使用SQL構造器(SQLBuilder)可用于編寫Select語句。右擊Query組件,選擇快捷菜單的SQLBuilder項,彈出SQLBuilder對話框。

SQL構造器的上半部用于選擇數據、數據表,以及表中的字段等;下半部用于選擇性地構造查詢條件。在SQL構造器中組織好一個查詢并退出構造器時,其中的SQL命令會自動寫入相應SQLBuilder組件的SQL屬性。3.靜態(tài)查詢

SQL語句有兩種:靜態(tài)SQL語句和動態(tài)SQL語句。靜態(tài)SQL語句在程序設計階段就已經固定了。而動態(tài)SQL語句則在語句中加入一些參數,在程序運行過程中,可以改變參數的值,即可以動態(tài)地給SQL語句中的參數賦值。4.動態(tài)查詢

對于較復雜的查詢,一般采用動態(tài)查詢,即在程序運行期可以改變查詢條件的查詢。動態(tài)SQL語句就是參數化的語句,即在SQL語句中包含著表示字段名或表名的參數動態(tài)SQL語句的編寫方式可通過參數編輯器賦值。方法是:在對象觀察器中,找到Query組件的Parames屬性,打開參數編輯器。在其中的參數列表中選擇一個參數,對象觀察器便會顯示參數屬性。其中,DataType屬性表示參數數據類型,ParamType屬性表示參數使用類型,Value屬性具有參數的值(Value)和類型(Type)兩個子屬性。設置了參數之后,關閉參數編輯器,打開Query組件所連接的數據庫,則在與Query組件相連接的數據控制組件中會顯示查詢結果。還可在應用程序運行過程中為參數賦值,這是使用可變參數的主要方法,這種賦值方法分為以下3種情況:(1)使用Parems屬性按序號訪問參數

Query組件的Params屬性在設計時不可有,在程序運行過程中可用而且是動態(tài)建立的。在為Query組件編寫動態(tài)SQL語句時,DelphiXE8自動建立一個數組Params,數組從0下標開始,依次對應SQL語句中的參數,即命令中第一個參數對應Params[0],第二個參數對應Params[1],依此類推。(2)使用ParemByName函數按名稱訪問參數

ParemByName是一個函數,用動態(tài)SQL語句中的參數作為調用ParemByName函數的參數,這樣便可為其賦值。(3)使用DataSource屬性從另一個數據集獲得參數使用上述兩種方法的前提是用戶預先知道具體的參數值,而在有些程序中,參數值是無法確定的。這就需要設置Query組件的DataSource屬性值,其值為另一個DataSource組件的名字。9.6.1需求分析

人事管理系統(tǒng)就是要實現對某單位的職工進行管理,整個系統(tǒng)包括人事資料錄入、資料查詢、資料刪除等功能。

經分析后,本系統(tǒng)具有以下3個功能模塊:1.系統(tǒng)功能(1)用戶管理模塊。該模塊主要是實現操作用戶的增加、刪除和修改。(2)密碼修改模塊。該模塊主要實現各操作用戶修改自己的操作密碼,系統(tǒng)管理用戶可以修改其他用戶的密碼。(3)系統(tǒng)初始化模塊。主要用來實現初始化功能。(4)退出模塊。就是退出系統(tǒng)。9.6人力資源管理系統(tǒng)開發(fā)2.人事管理主要實現人事信息的增加、修改和刪除等功能。3.人事查詢實現按各種條件進行查詢,并且實現打印查詢結果。9.6.2數據庫分析為了人事管理系統(tǒng)正常運行,需要創(chuàng)建兩個數據表:一個是操作用戶數據表Operator表;另一個是人事信息數據表Info表。9.6.3數據庫與數據源創(chuàng)建1.BDE方式(1)選擇【開始】|【程序】|【BorlandDelphi7】|【BDEAdministrator】,即可打開BD

溫馨提示

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

最新文檔

評論

0/150

提交評論