ADO數(shù)據(jù)庫編程課件_第1頁
ADO數(shù)據(jù)庫編程課件_第2頁
ADO數(shù)據(jù)庫編程課件_第3頁
ADO數(shù)據(jù)庫編程課件_第4頁
ADO數(shù)據(jù)庫編程課件_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

ADO數(shù)據(jù)庫編程

10.1ADO概述

10.1.1ADO的概念

ADO(ActiveXDataObject)是Microsoft提供對各種數(shù)據(jù)庫進行訪問的高層接口,是DAO/RDO的后繼產(chǎn)物,是Microsoft最新的數(shù)據(jù)訪問組件(Microsoft數(shù)據(jù)訪問組件簡稱MDAC)的一部分。

ADO是基于OLEDB之上的面向?qū)ο蟮臄?shù)據(jù)訪問模型,OLEDB是Microsoft開發(fā)的一種高性能的、基于COM的數(shù)據(jù)訪問技術(shù),其作用是向應用程序提供一個統(tǒng)一的數(shù)據(jù)訪問方法,而不需要考慮數(shù)據(jù)源的具體格式和存儲方式。

10.1.2ADO對象模型及其對象

1.基本對象

(1)Connection對象。

(2)RecordSet對象(3)Command對象。

(4)Field對象。

(5)Property對象。

(6)Parameter對象(7)Error對象。2.集合對象

(1)Errors集合對象。(2)Parameters對象。(3)Fields對象。(4)Properties對象。

10.1.3Delphi對ADO的支持方法

10.2TADOConnection組件

10.2.1TADOConnection組件功能說明

TADOConnection組件用于建立與實際的物理數(shù)據(jù)庫的連接,TADOCommand、TADODataSet、TADOTable、TADOQuery、TADOStoredPro等組件均可以通過它訪問和操作數(shù)據(jù)庫。10.2.2TADOConnection組件的常用屬性

1.CommandCount屬性

2.Commands屬性

3.CommandTimeout屬性

4.Connected屬性

5.ConnectionObject屬性

6.ConnectionString屬性

7.ConnectionOption屬性

8.ConnectionTimeout屬性

9.CursorLocation屬性

10.DataSetCount屬性

11.DataSets屬性

12.DefaultDatabase屬性13.Errors屬性

14.InTransaction屬性

15.KeepConnection屬性

16.Provider屬性

17.State屬性

18.LoginPrompt屬性

10.2.3TADOConnection組件的常用方法

1.BeginTrans方法其格式如下:

functionBeginTrans:Integer;2.CommitTrans方法

格式如下:

procedureCommitTrans;

3.RollbackTrans方法

使用格式如下:

procedureRollbackTrans;4.Open方法語法格式如下:

procedureOpen;overload;procedureOpen(constUserID:WideString;constPassword:WideString);overload;5.Close方法使用格式如下:

procedureClose;

6.Execute方法

格式1:functionExecute(constCommandText:WideString;constCommandType:TCommandType=cmdText;constExecuteOptions:TExecuteOptions=[]):_RecordSet;overload;

格式2:procedureExecute(constCommandText:WideString;constCommandType:CommandType;var

RecordsAffected:Integer;ExecuteOptions:TExecuteOptions=[eoExecuteNoRecords]);overload;

7.Cancel方法語法格式如下:

procedureCancel;

8.GetProcedureName方法

語法格式如下:

procedureGetProcedureNames(List:TStrings);9.GetTableNames方法

語法格式如下:

procedureGetTableNames(List:TStrings;SystemTables:Boolean=False);10.GetFieldNames方法

語法格式如下:

procedureGetFieldNames(const

TableName:String;List:TStrings);10.2.4TADOConnection組件的常用事件

10.2.5使用TADOConnection建立到數(shù)據(jù)庫的連接

1.通過DSN建立連接

2.通過選擇數(shù)據(jù)庫建立到Access數(shù)據(jù)庫的連接

【例10-1】編寫一個顯示當前目錄下“教學.MDB”的數(shù)據(jù)庫中的表名和字段名的程序。程序的設(shè)計界面如圖10-14所示,程序的運行界面如圖10-15所示。程序運行時把當前目錄下的“教學.MDB”數(shù)據(jù)庫中的表名顯示在ListBox1列表框中,在ListBox1列表框中單擊以選中一個表名時,該表所有的字段名將顯示在ListBox2中。

分析:在窗體的OnCreate事件中首先使用ADOConnect1組件與當前目錄下的“教學.MDB”建立連接,然后通過調(diào)用ADOConnection1的GetTableNames方法以獲得“教學.MDB”數(shù)據(jù)庫中的表名字符串列表并賦值給ListBox1的Items屬性。在ListBox1中選中一個表時,將發(fā)生列表框的OnClick事件,在該事件中調(diào)用ADOConnection1組件的GetFieldNames方法并以選中的表名作為參數(shù),得到選中表的字段名字符串列表并賦值給ListBox2的Items屬性。

10.3TADOCommand組件

10.3.1TADOCommand組件功能說明

TADOConnection不但能夠與數(shù)據(jù)庫建立連接,還可以通過它的Execute方法執(zhí)行SQL命令,但通常不用TADOConnection組件執(zhí)行命令。在ADO中,TADOCommand組件是專門用來創(chuàng)建和執(zhí)行命令的。

TADOCommand組件執(zhí)行在CommandText屬性中指定的命令,一個命令可能在一次執(zhí)行過程中需要某些參數(shù),如果命令包括有關(guān)參數(shù),則必須在Parameters屬性中指定??赏ㄟ^調(diào)用TADOCommand對象的Execute方法執(zhí)行命令。

10.3.2TADOCommand組件的常用屬性

1.CommandObject屬性

2.CommandText屬性

3.CommandTimeout屬性4.Connection屬性

5.ConnectionString屬性6.CommandType屬性

7.ParamCheck屬性8.Parameters屬性

9.Prepared屬性10.Properties屬性

11.State屬性

10.3.3TADOCommand組件的常用方法

1.Assign方法

語法格式如下:

procedureAssign(Source:TPersistent);override;

2.Cancel方法

語法格式如下:

procedureCancel;

3.Execute方法

格式1:

functionExecute:_Recordset;overload;

格式2:functionExecute(constParameters:OleVariant):_Recordset;overload;

格式3:functionExecute(var

RecordsAffected:Integer;constParameters:OleVariant):_RecordSet;overload;【例10-2】

利用TADOCommand組件實現(xiàn)如下操作:把當前目錄下的“教學.MDB”數(shù)據(jù)庫中的“教師表”中的“工資”字段值全部改為原來的1.1倍,從而實現(xiàn)加工資的功能。程序的設(shè)計界面如圖10-16所示。程序執(zhí)行時,單擊【連接到數(shù)據(jù)庫】按鈕將建立起到“教學.MDB”數(shù)據(jù)庫的連接,然后單擊【增加工資】按鈕,將把“教師表”中的“工資字段”值全部修改為原來的1.1倍,單擊【退出】按鈕將先關(guān)閉連接并關(guān)閉應用程序。

分析:建立連接采用與例10-1同樣的方法。要使TADOCommand執(zhí)行命令,可先通過設(shè)置它的Connection屬性值來和一個TADOConnection組件對象聯(lián)系在一起,然后設(shè)置它的CommandType屬性為需要的命令類型,再設(shè)置它的CommandText屬性為要執(zhí)行的命令文本,最后調(diào)用TADOCommand對象的Execute方法執(zhí)行CommandText中存放的命令。

10.4TADODataSet組件

10.4.1TADODataSet組件功能說明

TADODataSet組件是最常用的ADO數(shù)據(jù)集組件,具有從一個或多個ADO數(shù)據(jù)表中找到結(jié)果數(shù)據(jù)集的功能。結(jié)果數(shù)據(jù)集可以是直接從數(shù)據(jù)表中讀取的,也可以是通過SQL語句從一個或多個數(shù)據(jù)表得到的。另外TADODataSet組件還可以用來處理調(diào)用TADOCommand對象的Execute方法返回的結(jié)果記錄集。

10.4.2TADODataSet組件的常用屬性

1.RDSConnection屬性

2.BlockReadSize屬性

3.CacheSize屬性

4.CanModify屬性

5.CursorType屬性

6.EnableBCD屬性

7.Filter屬性

8.Filtered屬性

9.IndexDefs屬性

10.IndexFieldCount屬性11.IndexFieldNames屬性

12.IndexFields屬性13.IndexName屬性

14.LockType屬性

15.MarshalOptions屬性

16.MasterFields屬性

17.MaxRecords屬性

18.RecNo屬性

19.RecordCount屬性

20.Recordset屬性21.RecordsetState屬性

22.RecordSize屬性23.RecordStatus屬性

24.Sort屬性

25.StoreDefs屬性

10.4.3TADODataSet組件的常用方法

1.GetIndexNames方法從表記錄集中取得所用可用的索引名列表

2.BookmarkValid方法

該方法用來測試特定的書簽是否合法,書簽就是一個記錄的標志3.CancelBatch方法

使用該方法將取消批更新模式下對記錄集的所有掛起的更新

4.CancelUpdates方法

使用該方法可取消掛起的緩存更新

5.DeleteRecords方法刪除記錄集中的一個或多個記錄

6.FilterOnBookmarks方法該方法的作用是過濾記錄到某個書簽的位置

7.IsSequenced方法該方法用來返回底層數(shù)據(jù)庫是否將記錄的個數(shù)作為記錄的序號。8.Locate方法

該方法用來根據(jù)一個或多個字段的值查找記錄,并把查找到的記錄設(shè)置為當前記錄。

9.Lookup方法

該方法用來從數(shù)據(jù)集中查找記錄,從查找到的記錄中提取某些字段值10.Next方法

該方法用來把記錄指針移到下一條記錄11.Requery方法

該方法用來重新執(zhí)行產(chǎn)生記錄集的查詢命令以便重新生成記錄集12.Seek方法

該方法用來根據(jù)索引查找記錄

13.UpdateBatch方法

該方法用來把掛起的批更新寫到物理數(shù)據(jù)庫中14.UpdateStatus方法

該方法用來返回當前記錄的更新狀態(tài)

10.4.4TADODataSet組件的常用事件

【例10-3】

利用TADODataSet組件編寫一個實現(xiàn)對教師表中的數(shù)據(jù)進行顯示、修改和查詢的程序。程序設(shè)計界面如圖10-19所示,程序的運行界面如圖10-20所示。程序運行時在網(wǎng)格組件中顯示教師表的內(nèi)容,當在網(wǎng)格組件中單擊某條記錄時,該記錄的若干個字段值將會顯示在編輯框中,如圖10-20所示。當在編輯框中修改了當前記錄的內(nèi)容后,單擊【更新】按鈕,修改的結(jié)果將保存到數(shù)據(jù)表中。單擊【根據(jù)姓名查找】按鈕將彈出一個輸入對話框,要求用戶輸入一個姓名,然后根據(jù)姓名查找記錄。如果找到則給出“找到記錄”的提示并把當前記錄設(shè)為該記錄,如果沒有找到也給“沒有找到”的提示信息,并把當前記錄設(shè)置為查找前的記錄。

分析:本例由于要顯示數(shù)據(jù)庫的內(nèi)容,故應使用能夠返回結(jié)果記錄集的TADODataSet組件??捎靡粋€TADOConnection組件與實際的物理數(shù)據(jù)庫連接起來,用一個TADODataSet組件執(zhí)行命令從TADOConnection組件連接的數(shù)據(jù)庫中提取記錄形成記錄集,再用一個TDataSource組件作為TADODataSet組件與數(shù)據(jù)控制組件連接的橋梁,用一個TDBGrid組件來顯示記錄集的內(nèi)容。當記錄指針位置發(fā)生改變時,要把當前記錄的內(nèi)容顯示在編輯框中,本例定義了一個名為DispValue的過程用來實現(xiàn)該功能。另外本例還編寫了一個名為SetValue的過程,該過程的作用是利用編輯框中的值修改當前記錄的內(nèi)容。根據(jù)姓名查找記錄的值,可使用TADODataSet組件的Locate方法。

10.5TADOTable組件

10.5.1TADOTable組件功能說明

TADOTable組件用于通過一個單個的數(shù)據(jù)表來獲取和操作數(shù)據(jù)集。TADOTable組件和TTable組件非常類似,許多屬性、事件和方法也一樣。如果不使用TADOConnection組件,TADOTable組件的ConnectionString屬性就需要設(shè)定;如果使用TADOConnection組件,那么ConnectionString屬性就不需要設(shè)定,直接設(shè)定其Connection屬性使其指向TADOConnection組件即可。

10.5.2TADOTable組件的常用屬性

1.MasterSource屬性

2.ReadOnly屬性

3.TableDirect屬性

4.TableName屬性

10.5.3TADOTable組件的常用方法

語法格式如下:procedureGetIndexNames(List:TStrings);10.6TADOQuery組件

10.6.1TADOQuery組件功能說明

TADOQuery組件類似于Query組件,可以使用SQL語句在一個和多個數(shù)據(jù)表中選擇字段,而且可以增加和刪除數(shù)據(jù)。在使用該組件之前,必須要建立它到物理數(shù)據(jù)庫之間的連接。如果不使用TADOConnection組件,TADOQuery組件的ConnectionString屬性就需要設(shè)定;如果使用TADOConnection組件,那么ConnectionString屬性就不需要設(shè)定,直接設(shè)定其Connection屬性使其指向TADOConnection組件即可。

10.6.2TADOQuery組件的常用屬性

1.SQL屬性

該屬性用來指定利用TADOQuery組件來執(zhí)行的SQL語句。

2.RowsAffected屬性

該屬性用來返回最近一次執(zhí)行查詢操作時影響到的記錄數(shù),即被操作的記錄數(shù)。

10.6.3TADOQuery組件的常用方法

TADOQuery組件的常用方法是Open和ExecSQL,這兩個方法的作用與TTable組件的同名方法的作用一致。TADOQuery組件的使用方法與TQuery組件也基本一致。10.7TADOStoredPro組件

TADOStoredProc組件通過ProcedureName屬性指定存放在服務器上的一個存儲過程,應用程序可以執(zhí)行這個存儲過程。如果TADOStoredProc組件是指向一個TADOConnection組件,為了與存儲過程相聯(lián)系,可以調(diào)用TADOConnection組件的GetProcedureNames方法,將數(shù)據(jù)庫中的存儲過程名返回,然后再將選中的存儲過程名賦給ProcedureName屬性。

10.8ADO綜合應用實例

【例10-4】

編寫一個顯示選中數(shù)據(jù)表中的數(shù)據(jù)或顯示SELECT語句執(zhí)行結(jié)果的應用程序,顯示的數(shù)據(jù)來源于當前目錄下的“教學.MDB”數(shù)據(jù)庫。程序的設(shè)計界面如圖10-21所示,程序的運行界面如圖10-22所示。程序運行時將在ComboBox1組合框中顯示“教學.MDB”中的所有表名,可以通過選擇確定在DBGrid組件中顯示的是某個表中的數(shù)據(jù)還是執(zhí)行某條SELECT語句后的結(jié)果。如果用戶選擇【數(shù)據(jù)表中的數(shù)據(jù)】,則可以從ComboBox1組合框中選擇一個表名,然后單擊“執(zhí)行命令”按鈕,表中的數(shù)據(jù)將會顯示在DBGrid1表格中。如果用戶選擇【Select語句執(zhí)行結(jié)果】,則可以Memo1組件中輸入一條合法的SELECT語句,然后單擊【執(zhí)行命令】按鈕,SELECT語句執(zhí)行的結(jié)果將會顯示在DBGrid1表格中。

分析:執(zhí)行SQL語句可使用TADOQuery組件??上韧ㄟ^TADOConnection組件建立與當前目錄下的“教學.MDB”數(shù)據(jù)庫的連接,然后通過設(shè)置TADOQuery組件的Connection屬性使它能夠通過TADOConnection組件訪問數(shù)據(jù)庫。通過一個TDataSource組件把TADOQuery組件和TDBGrid組件聯(lián)系起來,使命令執(zhí)行的結(jié)果集能夠顯示在TDBGrid組件中。在“執(zhí)行命令”按鈕的單擊事件中,首先根據(jù)用戶的選擇及選擇的表名或輸入的SELECT語句,設(shè)置TADOQuery組件

溫馨提示

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

評論

0/150

提交評論