版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、主要內(nèi)容,第8章 用ADO操作SQL Server數(shù)據(jù)庫,ODBC簡介 ADO 常用的數(shù)據(jù)訪問控件,8.1 ODBC簡介,使用ODBC進行數(shù)據(jù)庫開發(fā)大體有以下幾個優(yōu)點: (1)ODBC的數(shù)據(jù)庫獨立性使得應(yīng)用程序移植到其他數(shù)據(jù)庫上變得非常容易。 (2)使用ODBC可以縮短應(yīng)用程序的開發(fā)時間。 (3)使用ODBC避免了應(yīng)用程序?qū)Σ煌愋偷臄?shù)據(jù)庫使用不同的API。 8.1.1 ODBC的結(jié)構(gòu) ODBC的調(diào)用主要由4個層次組成,如圖所示。,一般操作步驟如下: (1)選擇Windows 98中“開始”|“設(shè)置”|“控制面板”命令,出現(xiàn)如右上圖所示的界面。 (2)雙擊該目錄下的“ODBC數(shù)據(jù)源(32位)”
2、,打開“ODBC數(shù)據(jù)源管理器”對話框,如右中圖所示。 (3)單擊“添加”按鈕后,出現(xiàn)如右下圖所示的對話框。,8.1.2 ODBC數(shù)據(jù)源的創(chuàng)建,(4)選擇SQL Server驅(qū)動之后,單擊“完成”按鈕,將出現(xiàn)“創(chuàng)建到SQL Server的新數(shù)據(jù)源”對話框,如右上圖所示。需要輸入ODBC數(shù)據(jù)源的名稱和SQLServer服務(wù)器的名稱。 (5)單擊“下一步”按鈕,此時會出現(xiàn)連接SQL Server認證的輸入框,如右中圖所示。 (6)選擇“使用用戶輸入登錄ID和密碼的SQL Server驗證”,正確輸入登錄ID和密碼。輸入完畢后,單擊“下一步”按鈕,進入選擇數(shù)據(jù)庫的對話框,如右下圖所示。,(7)選中“更
3、改默認的數(shù)據(jù)庫為”復(fù)選框,從組合框中選擇數(shù)據(jù)庫,完畢后單擊“下一步”按鈕,進入設(shè)置ODBC對話框,如右上圖所示。 (8)保持默認選項,單擊“完成”按鈕,將彈出ODBC配置的確認對話框,如右中圖所示。單擊“測試數(shù)據(jù)源”按鈕,測試該ODBC數(shù)據(jù)源是否連接數(shù)據(jù)庫成功。 (9)單擊“確定”按鈕,完成整個基于ODBC的數(shù)據(jù)庫的連接,如右下圖所示。,8.2 ADO,8.2.1 ADO的模型結(jié)構(gòu) ADO的目標(biāo)是訪問、編輯和更新數(shù)據(jù)源,為完成此目標(biāo)必需的幾個步驟如下: (1)連接到數(shù)據(jù)源(Connection對象),并可以有選擇地開始一個事務(wù)(Transaction)。 (2)可以選擇創(chuàng)建對象來執(zhí)行SQL命令
4、(Command對象)。 (3)可以選擇在SQL命令中指定列、表和值作為變量參數(shù)(Parameter對象)。,ADO的模型結(jié)構(gòu)圖,(4)執(zhí)行命令(Command對象、Connection對象或RecordSet對象)。 (5)如果命令產(chǎn)生按行返回的記錄集,則將行存儲在緩存中(RecordSet對象)。 (6)可以選擇創(chuàng)建緩存視圖,對數(shù)據(jù)進行排序、篩選和定位(RecordSet對象)。 (7)通過添加、刪除或更改行和列編輯數(shù)據(jù)(RecordSet對象)。 (8)在適當(dāng)情況下,通過在緩存中更改內(nèi)容來更新數(shù)據(jù)源(RecordSet對象)。 (9)如果使用了事務(wù)(Transaction),可以接受或拒
5、絕在完成事務(wù)期間所作的更改。結(jié)束事務(wù)(Connection對象)。,ADO集合,ADO對象,8.2.2 ADO中的Connection對象 1Connection對象的常用屬性 (1)Attribute屬性 該屬性是一個Long型數(shù)據(jù)。設(shè)置或返回Connection對象的特性。,Attribute屬性的取值,(2)CommandTimeOut屬性 該屬性作用于Connection對象和Command對象。,ADO連接數(shù)據(jù)庫有兩種方式: 通過DSN建立連接 一個DSN連接通常需要的參數(shù)有:DSN數(shù)據(jù)源名稱、用戶名和口令(或登錄密碼)。其使用格式如下: ConnectionString=DSN=數(shù)
6、據(jù)源名稱;UID=用戶名;PWD=口令,ConnectionString屬性的成分,(3)ConnectionString屬性,直接使用數(shù)據(jù)庫文件名稱或數(shù)據(jù)源名稱建立連接 其使用格式如下: ConnectionString=Provider=提供者名稱;DSN=數(shù)據(jù)源名稱; DRIVER=驅(qū)動程序名稱;SERVER=服務(wù)器名稱;DATABASE=數(shù)據(jù)庫名稱;UID=用戶名; PWD=口令,(4)ConnectionTimeout屬性 該屬性是一個Long型數(shù)據(jù)值。指示在終止嘗試和產(chǎn)生錯誤前建立連接期間所等待的秒數(shù)。默認值為15秒。,(5)CursorLocation屬性 這個屬性是Connec
7、tion對象和RecordSet對象都具有的。,CursorLocation可設(shè)置的值,(6)DefaultDatabase屬性 一個字符串。包含Connection對象的默認數(shù)據(jù)庫名稱。 (7)Mode屬性 一個Long型數(shù)據(jù)值。,Mode屬性的取值,(8)State屬性 該屬性是一個Long型數(shù)據(jù)值。描述Connection對象的當(dāng)前狀態(tài)。,State屬性所能取的常量值,2Connection對象的常用方法 (1)BeginTrans、CommitTrans和RollbackTrans方法 它們的使用格式如下: connection對象.BeginTrans connection對象.Co
8、mmitTrans connection對象.RollbackTrans (2)Cancel方法 其使用語句如下: Connection對象.Cancel (3)Close方法 Close方法的使用語句如下: Connection對象.Close,(4)Execute方法 Execute的語法如下。 對于不按行返回的命令字符串: Connection對象.Execute CommandText,RecordsAffected,Options 對于按行返回的命令字符串: Set RecordSet=Connection對象.Execute(CommandText, _ RecordsAffect
9、ed,Options) (5)Open方法 其使用語法如下: connection對象.Open ConnectionString,UserID, Password, Options,3Connection對象的常用事件 Connection對象的常用事件如下: (1)BeginTransComplete、CommitTransComplete和RollbackTransComplete事件 其使用語法如下: BeginTransComplete TransactionLevel, pError, adStatus, pConnection CommitTransComplete pError
10、, adStatus, pConnection RollbackTransComplete pError, adStatus, pConnection (2)ConnectComplete和Disconnect事件 其使用語法如下: ConnectComplete pError,adStatus,pConnection Disconnect adStatus,pConnection,(3)ExecuteComplete事件 其使用語法如下: ExecuteComplete RecordsAffected,pError,adStatus,pCommand, _pRecordSet,pConnec
11、tion (4)InfoMessage事件 使用語法如下: InfoMessage pError,adStatus,pConnection (5)WillConnect事件 其使用語法如下: WillConnect ConnectionString,UserID,Password,Options, _ adStatus,pConnection (6)WillExecute事件 其使用語法如下: WillExecute Source,CursorType,LockType,Options,adStatus,pCommand, _pRecordSet,pConnection,8.2.3 ADO中的
12、Command對象 可以使用Command對象的集合、方法、屬性進行下列操作: 使用CommandText屬性定義命令(如SQL語句)的可執(zhí)行文本。 通過Parameter對象和Parameters集合定義參數(shù)化查詢或存儲過程參數(shù)。 可以使用Execute方法執(zhí)行命令并在適當(dāng)?shù)臅r候返回RecordSet對象。 執(zhí)行前應(yīng)使用CommandType屬性指定命令類型以優(yōu)化性能。 使用CommandTimeout屬性設(shè)置提供者等待命令執(zhí)行的秒數(shù)。 通過設(shè)置ActiveConnection屬性使打開的連接與Command對象關(guān)聯(lián)。 設(shè)置Name屬性將Command標(biāo)識為與Connection對象關(guān)聯(lián)的方
13、法。 將Command對象傳送給RecordSet的Source屬性以便獲取數(shù)據(jù)。,1Command對象的屬性 主要的屬性如下: (1)ActiveConnection屬性 (2)CommandText屬性 (3)CommandTimeout (4)CommandType屬性 (5)Name屬性 (6)Parameters屬性 (7)Prepared屬性 (8)State屬性 2Command對象的方法 常用的方法如下: (1)Cancel方法 (2)CreateParameter方法 其使用語法如下: Set ParameterName= _Command對象.CreateParameter
14、(Name,Type,Direction,Size,Value),(3)Execute方法 其使用語法如下。 對于按行返回的Command對象: Set RecordSet對象=Command對象.Execute(RecordsAffected, Parameters, _Options) 對于不按行返回的Command對象: Command對象.Execute RecordsAffected, Parameters,Options 3Parameters集合和Parameter對象 (1)Parameters集合 其主要屬性如下: Count屬性 Item屬性 Parameters集合的主要
15、方法如下: Append方法 Delete方法 Refresh方法,(2)Parameter對象 其常用的屬性如下: Name屬性 Type屬性 Direction屬性 Size屬性 Value屬性 8.2.4 ADO中的RecordSet對象 1. RecordSet對象的屬性 常用屬性如下: (1)AbsolutePage屬性 (2)AbsolutePosition屬性 (3)ActiveCommand屬性 (4)ActiveConnection屬性 (5)BOF和EOF屬性 (6)CursorLocation屬性,(7)CursorType屬性 (8)DataMember屬性 (9)Da
16、taSource屬性 (10)EditMode屬性 (11)Fields屬性 (12)Filter屬性 (13)Index屬性 (14)LockType屬性 (15)MaxRecords屬性 (16)PageCount屬性 (17)PageSize屬性 (18)RecordCount屬性 (19)Sort屬性 (20)Source屬性 (21)State屬性 (22)Status屬性,2RecordSet對象的方法 常用方法如下: (1)AddNew方法 其使用語法:RecordSet對象.AddNew FieldList,Values (2)Cancel方法 其使用語法:RecordSet對
17、象.Cancel (3)CancelBatch方法 其使用語法:RecordSet對象.CancelBatch AffectRecords (4)CancelUpdate方法 其使用語法:RecordSet對象.CancelUpdate (5)Close方法 其使用語法:RecordSet對象.Close (6)Delete方法 其使用語法:RecordSet對象.Delete AffectRecords,(7)Find方法 其使用語法:Find(criteria,SkipRows,SearchDirection,start) (8)Move方法 其使用語法:RecordSet對象.Move
18、NumRecords, Start (9)MoveFirst方法 其使用語法:RecordSet對象.MoveFirst (10)MoveLast方法 其使用語法:RecordSet對象.MoveLast (11)MoveNext方法 其使用語法:RecordSet對象.MoveNext (12)MovePrevious方法 其使用語法:RecordSet對象 .MovePrevious,(13)Open方法 其使用語法如下: RecordSet對象.Open Source,ActiveConnection,CursorType,LockType,_Options (14)Requery方法
19、其使用語法:RecordSet對象.Requery Options (15)Resync方法 其使用語法:RecordSet對象.Resync AffectRecords, ResyncValues (16)Save方法 其使用語法:RecordSet對象.Save Destination, PersistFormat (17)Seek方法 其使用語法:RecordSet對象.Seek KeyValues, SeekOption (18)Update方法 其使用語法:RecordSet對象.Update Fields, Values (19)UpdateBatch方法 其使用語法:Record
20、Set對象.UpdateBatch AffectRecords,3RecordSet對象的事件 主要事件如下。 (1)EndOfRecordSet事件 其使用語法如下: EndOfRecordSet fMoreData, adStatus, pRecordSet (2)FetchComplete事件 其使用語法如下: FetchComplete pError, adStatus, pRecordSet (3)FetchProgress事件 其使用語法如下: FetchProgress Progress, MaxProgress, pRecordSet (4)FieldChangeComplet
21、e事件和WillChangeField事件 其使用語法如下: WillChangeField cFields, Fields, adStatus, pRecordSet FieldChangeComplete cFields, Fields, pError, adStatus, pRecordSet,(5)MoveComplete事件和WillMove事件 其使用語法如下: WillMove adReason, adStatus, pRecordSet MoveComplete adReason, pError, adStatus, pRecordSet (6)RecordChangeComp
22、lete事件和WillChangeRecordSet事件 其使用語法如下: WillChangeRecord adReason, cRecords, adStatus, pRecordSet RecordChangeComplete adReason, cRecords, pError, adStatus, pRecordSet (7)RecordSetChangeComplete和WillChangeRecordSet事件 其使用語法如下: WillChangeRecordSet adReason, adStatus, pRecordSet RecordSetChangeComplete a
23、dReason, pError, adStatus, pRecordSet,8.2.5 ADO中的Field對象 使用Field對象的集合、方法和屬性可進行如下操作: 使用Name屬性可返回字段名。 使用Value屬性可查看或更改字段中的數(shù)據(jù)。 使用Type、Precision和NumericScale屬性可返回字段的基本特性。 使用DefinedSize屬性可返回已聲明的字段大小。 使用ActualSize屬性可返回給定字段中數(shù)據(jù)的實際大小。 使用Attributes屬性和Properties集合可決定對于給定字段哪些類型的功能受到支持。 使用AppendChunk和GetChunk方法可處
24、理包含長二進制或長字符數(shù)據(jù)的字段值。 如果提供者支持批更新,可使用OriginalValue和UnderlyingValue屬性在批更新期間解決字段值之間的差異。 在打開Field對象的RecordSet前,所有元數(shù)據(jù)屬性(Name、Type、DefinedSize、Precision和NumericScale)都是可用的。在此時設(shè)置這些屬性將有助于動態(tài)構(gòu)造其格式。,1Field對象的屬性 Field對象的主要屬性如下: (1)ActualSize屬性 (2)Attributes屬性 (3)DataFormat屬性 (4)DefinedSize屬性 (5)Name屬性 (6)NumericSc
25、ale屬性 (7)OriginalValue屬性 (8)Precision屬性 (9)Properties屬性 (10)Type屬性 (11)UnderlyingValue屬性 (12)Value屬性,2Field對象的方法 方法如下: (1)AppendChunk方法 其使用語法:Field對象.AppendChunk Data (2)GetChunk方法 其使用語法:variable=Field對象.GetChunk(Size) 3Fields集合 Fields集合的屬性如下: (1)Count屬性 (2)Item(index)屬性 Fields集合的方法如下: (1)Append方法 (
26、2)Delete方法 (3)Refresh方法 (4)Update方法,8.3 常用的數(shù)據(jù)訪問控件,8.3.1 ADO Data控件 ADO Data控件可以實現(xiàn)以下功能: 連接一個本地數(shù)據(jù)庫或遠程數(shù)據(jù)庫。 打開一個指定的數(shù)據(jù)庫表,或定義一個基于結(jié)構(gòu)化查詢語言(SQL)的查詢、存儲過程或該數(shù)據(jù)庫中的表的視圖的記錄集合。 將數(shù)據(jù)字段的數(shù)值傳遞給數(shù)據(jù)綁定的控件,可以在這些控件中顯示或更改這些數(shù)值。 添加新的記錄或根據(jù)更改顯示在綁定的控件中的數(shù)據(jù)來更新一個數(shù)據(jù)庫。 1ADO Data控件的屬性 常用屬性如下: (1)Align屬性 (2)BOFAction和EOFAction屬性 (3)Connec
27、tionString屬性 (4)RecordSource屬性 (5)CommandType屬性,(6)UserName屬性 (7)Password屬性 (8)ConnectionTimeout屬性 2ADO Data控件的方法 常用方法如下: (1)UpdateControls方法 (2)AddNew方法 其使用語法:Adodc1.Recordset.AddNew (3)Delete方法 其使用語法:Adodc1.Recordset.Delete (4)MoveFirst、MoveLast、MoveNext和MovePrevious方法 其使用語法如下: Adodc1.Recordset.Mo
28、veFirst Adodc1.Recordset.MoveLast Adodc1.Recordset.MoveNext Adodc1.Recordset.MovePrevious,(5)CancelUpdate方法 其使用語法:Adodc1.Recordset.CancelUpdate (6)UpdateBatch方法 其使用語法:Adodc1.Recordset.UpdateBatch 3ADO Data控件的事件 常用事件如下: (1)WillMove和MoveComplete事件 (2)WillChangeField和FieldChangeComplete事件 (3)WillChangeRecord和RecordChangeComplete事件 8.3.2 DataGrid控件 1DataGrid控件的屬性 常用屬性如下: (1)DataSource屬性 其使用語法:Set DataGrid控件名.DataSource=數(shù)據(jù)源,(2)Columns數(shù)組屬性 (3)AllowUpdate、AllowAddNew和AllowDelete屬性 (4)ScrollBars屬性 2DataGrid控件的方法 常用方法如下: (1)ClearFields方法 (2)Refresh 3DataGrid控件的事件 常用事件如下: (1)Click事件 (2)Db
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年中國西電集團招聘(12人)考試備考試題及答案解析
- 2026年茶席設(shè)計與禮儀培訓(xùn)
- 2025年新沂幼兒園編制筆試及答案
- 2025年事業(yè)單位教育類綜合考試及答案
- 2025年安徽巢湖市事業(yè)單位考試及答案
- 2025年山東農(nóng)科院事業(yè)單位考試及答案
- 2025年南京軍總招聘筆試及答案
- 2025年信陽人事考試及答案
- 2025年東方資產(chǎn)筆試題及答案
- 2026年數(shù)字版權(quán)登記操作指南
- 模塊化軟件質(zhì)量保證
- 人教版七年級語文上冊《課內(nèi)文言文基礎(chǔ)知識 》專項測試卷及答案
- 砌筑工中級理論考核試題題庫及答案
- 【關(guān)于構(gòu)建我國個人破產(chǎn)制度的探討(論文)16000字】
- DL∕T 1631-2016 并網(wǎng)風(fēng)電場繼電保護配置及整定技術(shù)規(guī)范
- JT-T-155-2021汽車舉升機行業(yè)標(biāo)準(zhǔn)
- 加固專業(yè)承包合同
- 國家職業(yè)技術(shù)技能標(biāo)準(zhǔn) 5-01-05-01 中藥材種植員 人社廳發(fā)200994號
- 年終食堂工作總結(jié)
- 時間管理與提升工作效率課件
- 結(jié)直腸癌患者健康教育處方
評論
0/150
提交評論