控制項與存取物件課件_第1頁
控制項與存取物件課件_第2頁
控制項與存取物件課件_第3頁
控制項與存取物件課件_第4頁
控制項與存取物件課件_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

資料控制項與資料存取物件資料庫控制項(Adodc)提供的功能有限方便,使用者不需要額外撰寫程式資料存取物件(ADO)功能較完整需要撰寫程式碼二者可以交互使用半自動完全手動資料控制項與資料存取物件資料庫控制項(Adodc)二者可1ADO的子物件Connection物件:用以連接資料庫Recordset物件:取得資料來源Command物件:儲存操作資料庫時用到的命令Parameter物件:管理查詢或預(yù)儲程式Field物件:儲存欄位資料Error物件:處理錯誤訊息Property物件:保存Connection,Command,Recordset

與Field物件屬性的物件ADO的子物件Connection物件:用以連接資料庫2物件間相對關(guān)係ConnectionRecordsetFieldsFieldCommandErrorPropertyPropertyPropertyParameter(s)物件集合物件物件間相對關(guān)係ConnectionRecordsetFiel3如何存取物件成員?RecordsetFieldsField(0)Field(1)Field(2)Field(3)Field(4)使用索引編號編號從0開始Recordset.Field(1)但是當物件索引編號太多,誰還記得我要的是第幾個如何存取物件成員?RecordsetFieldsField4如何存取物件成員?除了Recordset.Field(1)的寫法外也可以使用物件的名稱來存取HOW?Recordset對應(yīng)的是一個資料表Fields對應(yīng)的是一筆資料Field對應(yīng)的是一筆資料中的某個欄位記欄位名稱一定比記索引編號更容易所以欄位一定要取有意義的名稱如何存取物件成員?除了Recordset.Field(1)5如何存取物件成員?除了Recordset.Field(1)的寫法外也可以使用Recordset.Field(“書名”)Recordset(“書名”)Recordset.Field!書名Recordset!書名如何存取物件成員?除了Recordset.Field(1)6ADO的功用移動紀錄更新紀錄新增紀錄刪除紀錄搜尋紀錄篩選記錄排序紀錄還記得Adodc控制項中也介紹過此些功能嗎?ADO的功用移動紀錄還記得Adodc控制項中也介紹過此些功能7VB中如何引用ADO?專案設(shè)定引用項目MicrosoftActiveXDataObjects2.8VB中如何引用ADO?專案設(shè)定引用項目Mic8如何建立ADO?宣告物件變數(shù)(使用物件類別)將物件型態(tài)帶入變數(shù)中(真正建立物件)物件類別名稱ConnectionADODB.ConnectionErrorADODB.ErrorCommandADODB.CommandParameterADODB.ParameterRecordsetADODB.RecordsetFieldADODB.FieldPropertyADODB.Property如何建立ADO?宣告物件變數(shù)(使用物件類別)物件類別名稱C9如何建立ADO?例如要宣告一個Connection物件DimCnAsADODB.Connection物件變數(shù)物件類別完成宣告物件變數(shù),但是還沒有建立如何建立ADO?例如要宣告一個Connection物件物件變10如何建立ADO?要建立一個Connection物件DimCnAsADODB.ConnectionSetCn=NewADODB.Connection物件變數(shù)建立物件完成物件的建立如何建立ADO?要建立一個Connection物件物件變數(shù)建11其他建立ADO物件的方法DimCnAsADODB.ConnectionSetCn=NewADODB.ConnectionDimCnAsADODB.ConnectionSetCn=CreatObject(ADODB.Connection)DimCnAsNewADODB.Connection其他建立ADO物件的方法DimCnAsADODB.Co12使用ADO物件有了物件之後要做的是希望從資料庫中存取與操作資料如何做呢??現(xiàn)在就真的要靠自己了(懷念adodc控制項嗎?)第一步應(yīng)該是要先與資料庫取得聯(lián)繫所以Connection物件就先登場了使用ADO物件有了物件之後要做的是希望從資料庫中存取與操作資13Connection物件建立物件設(shè)定ConnectionString屬性

(還記得在adodc中也是設(shè)定此屬性,不過是程式自動產(chǎn)生的)使用Connection物件的Open方法Connection物件建立物件14ConnectionString屬性一字串型態(tài)的參數(shù)每個關(guān)鍵參數(shù)以;號區(qū)隔關(guān)鍵參數(shù)說明Provider連結(jié)資料庫時所提供的OLEDBProvider(JETEngine)DataSource連結(jié)資料庫的完整路徑Location連結(jié)的伺服器名稱UserID連結(jié)資料庫或伺服器時的使用者名稱Password連結(jié)資料庫或伺服器時的使用者密碼FileName使用DataLinkFile連結(jié)時.udl的檔名DSN使用ODBCDSN連結(jié)時的DSN名稱DriverODBC驅(qū)動程式的名稱DBQ使用ODBC連結(jié)時,資料庫的檔名ConnectionString屬性一字串型態(tài)的參數(shù)關(guān)鍵參數(shù)15Provider種類資料庫種類Provider名稱AccessMicrosoft.Jet.OLEDB.4.0ODBCMSDASQLSQLServerSQLODEDBOracleMSDAORAProvider種類資料庫種類Provider名稱Acces16連結(jié)開啟資料庫DimCnasADODB.ConnectionSetCn=NewADODB.ConnectionCn.ConnectionString=“Provider=Microsoft.Jet.OLEDB.4.0;”_&“DATASource=c:\vb6\db\book.mdb”Cn.open建立物件設(shè)定ConnectionString屬性使用Open方法連結(jié)開啟資料庫DimCnasADODB.Connect17關(guān)閉連結(jié)資料庫使用Close方法

Cn.Close不過如此只是將佔用的系統(tǒng)資源釋放,記憶體中的資料庫資料並不會被移除,可以再使用Cn.Open來再度開啟連結(jié)SetCn=nothing可完全從記憶體釋放Cn.close關(guān)閉連結(jié)資料庫使用Close方法18連結(jié)資料庫Open方法與ConnectionString屬性的合併Cn.ConnectionString=“Provider=Microsoft.Jet.OLEDB.4.0;”_&“DATASource=c:\vb6\db\book.mdb”Cn.open

Cn.open

“Provider=Microsoft.Jet.OLEDB.4.0;”_&“DATASource=c:\vb6\db\book.mdb”

或Cstr=“Provider=Microsoft.Jet.OLEDB.4.0;”_&“DATASource=c:\vb6\db\book.mdb”Cn.openCstr連結(jié)資料庫Open方法與ConnectionString屬性19使用ODBCDSN連結(jié)資料庫DimCnasADODB.ConnectionSetCn=NewADODB.ConnectionCn.ConnectionString=“DSN=cnBook”Cn.open

或DimCnasADODB.ConnectionSetCn=NewADODB.ConnectionCn.open

“DSN=cnBook”使用ODBCDSN連結(jié)資料庫DimCnasADODB20有Username與Password連結(jié)資料庫DimCnasADODB.ConnectionSetCn=NewADODB.ConnectionCn.ConnectionString=“DSN=cnbook;UserID=sa;Password=xxx”Cn.open

或DimCnasADODB.ConnectionSetCn=NewADODB.ConnectionCn.open

“DSN=cnbook”,”UserID=sa”,“Password=xxx”有Username與Password連結(jié)資料庫DimCn21Practice其中有關(guān)Recordset的部分留待下一節(jié)再詳述Practice其中有關(guān)Recordset的部分留待下一節(jié)再22連上資料庫後呢??終於可以連結(jié)上資料庫了,然後呢??應(yīng)該是要存取與操作資料,所以輪到Recordset物件登場連上資料庫後呢??終於可以連結(jié)上資料庫了,然後呢??應(yīng)該是要23建立Recordset物件建立Recordset物件設(shè)定Source與ActiveConnection屬性使用Open方法是不是與Connection物件的步驟類似?沒錯大部分的物件建立步驟都類似建立Recordset物件建立Recordset物件是不是與24建立Recordset物件的方法DimrsAsADODB.RecordsetSetrs=NewADODB.RecordsetDimrsAsADODB.RecordsetSetrs=CreatObject(ADODB.Recordset)DimrsAsNewADODB.Recordset建立Recordset物件的方法DimrsAsADOD25Source與ActiveConnection屬性Source:表示要連結(jié)的資料表ActiveConnection:表示連結(jié)的資料庫(即Connection物件)Source與ActiveConnection屬性Sourc26Source屬性DimrsasADODB.RecordsetSetrs=NewADODB.RecordsetRs.Source=“書籍”資料表名稱Source屬性DimrsasADODB.Record27AvtiveConnection屬性與Open方法DimCnasADODB.ConnectionDimRsasADODB.RecordsetSetCn=NewADODB.ConnectionCn.ConnectionString=“Provider=Microsoft.Jet.OLEDB.3.51;”_&“DATASource=c:\vb6\db\book.mdb”Cn.openSetRs=NewADODB.RecordsetRs.Source=“書籍”Rs.ActiveConnection=CnRs.openAvtiveConnection屬性與Open方法DimC28關(guān)閉資料表使用Close方法

Rs.Close不過如此只是將佔用的系統(tǒng)資源釋放,記憶體中的資料庫資料並不會被移除,可以再使用Rs.Open來再度開啟連結(jié)SetRs=nothing可完全從記憶體釋放Rs.close關(guān)閉資料表使用Close方法29PracticePractice30再論Recordset的Open方法Source與ActiveConnection的設(shè)定可以與Open方法合併Rs.Source=“書籍”Rs.ActiveConnection=Cn==Rs.open“書籍”,CnRs.openRecordset.openSource,ActiveConnection,Cursortype,Locktype,Options再論Recordset的Open方法Source與Activ31Cursortype標示如何操作資料表種類值說明AdOpenForwardOnly0只可向前移動AdOpenKeySet1可以自由移動AdOpenDynamic2可動態(tài)更新編輯AdOpenStatic3靜態(tài)更新編輯Cursortype標示如何操作資料表種類值說明AdOpen32CursorTypeDynamic:adOpenDynamic Fullyupdateablerecordset Allactionsmadebyotheruserswhiletherecordsetisopenarevisible Alltypesofmovement(upanddown) Keyset:adOpenKeyset Updateablerecordset Itpreventsaccesstorecordsthatotherusersaddafteritwascreated AlltypesofmovementStatic:adOpenStatic

Staticnon-updateablerecordset(retrievedata) Changesmadebyotheruserswhiletherecordsetisopenaren’tvisible AlltypesofmovementForward-only:adOpenForwardOnly(default)

Staticnon-updateablerecordset OnlyScrollforwardthroughtherecords(MoveNext,GetRows)

Actions:Insert,Update&DeleteCursorTypeDynamic:adOpenDynam33使用CursortypeRs.Source=“書籍”Rs.ActiveConnection=CnRs.Cursortype=AdOpenDynamicRs.open或Rs.Open“書籍”,Cn,AdOpenDynamic使用CursortypeRs.Source=“書籍”34LockType標示如何鎖定資料表種類值說明AdOpenReadOnly1唯讀AdOpenPessimistic2悲觀鎖定,取得資料表後鎖定AdOpenOptimistic3樂觀鎖定,更新時才鎖定AdOpenBatchOptimistic4批次樂觀鎖定,需下UPDATEBatchLockType標示如何鎖定資料表種類值說明AdOpenRe35LockTypeadLockReadOnly

Cannotalterthedata(noupdates,inserts,ordeletions)adLockPessimistic(betteratthedatabase’sintegrity)

Recordlockduringediting Lockouteveryoneelsefromtherecordyou’reediting LockfromthetimeoffirstchangeuntilcalltheUpdatemethodadLockOptimistic

Nolockduringediting LocktherecordonlyduringthecalltoUpdateadLockBatchOptimistic Nolockduringediting(modify,insert,delete)

Batchupdate:LocktherecordsonlyduringthecalltoUpdateBatchLockTypeadLockReadOnly36使用LockTypeRs.Source=“書籍”Rs.ActiveConnection=CnRs.Cursortype=AdOpenDynamicRs.LockType=AdOpenPessimisticRs.open或Rs.Open“書籍”,Cn,AdOpenDynamic,AdOpenPessimistic使用LockTypeRs.Source=“書籍”37資料控制項與資料存取物件資料庫控制項(Adodc)提供的功能有限方便,使用者不需要額外撰寫程式資料存取物件(ADO)功能較完整需要撰寫程式碼二者可以交互使用半自動完全手動資料控制項與資料存取物件資料庫控制項(Adodc)二者可38ADO的子物件Connection物件:用以連接資料庫Recordset物件:取得資料來源Command物件:儲存操作資料庫時用到的命令Parameter物件:管理查詢或預(yù)儲程式Field物件:儲存欄位資料Error物件:處理錯誤訊息Property物件:保存Connection,Command,Recordset

與Field物件屬性的物件ADO的子物件Connection物件:用以連接資料庫39物件間相對關(guān)係ConnectionRecordsetFieldsFieldCommandErrorPropertyPropertyPropertyParameter(s)物件集合物件物件間相對關(guān)係ConnectionRecordsetFiel40如何存取物件成員?RecordsetFieldsField(0)Field(1)Field(2)Field(3)Field(4)使用索引編號編號從0開始Recordset.Field(1)但是當物件索引編號太多,誰還記得我要的是第幾個如何存取物件成員?RecordsetFieldsField41如何存取物件成員?除了Recordset.Field(1)的寫法外也可以使用物件的名稱來存取HOW?Recordset對應(yīng)的是一個資料表Fields對應(yīng)的是一筆資料Field對應(yīng)的是一筆資料中的某個欄位記欄位名稱一定比記索引編號更容易所以欄位一定要取有意義的名稱如何存取物件成員?除了Recordset.Field(1)42如何存取物件成員?除了Recordset.Field(1)的寫法外也可以使用Recordset.Field(“書名”)Recordset(“書名”)Recordset.Field!書名Recordset!書名如何存取物件成員?除了Recordset.Field(1)43ADO的功用移動紀錄更新紀錄新增紀錄刪除紀錄搜尋紀錄篩選記錄排序紀錄還記得Adodc控制項中也介紹過此些功能嗎?ADO的功用移動紀錄還記得Adodc控制項中也介紹過此些功能44VB中如何引用ADO?專案設(shè)定引用項目MicrosoftActiveXDataObjects2.8VB中如何引用ADO?專案設(shè)定引用項目Mic45如何建立ADO?宣告物件變數(shù)(使用物件類別)將物件型態(tài)帶入變數(shù)中(真正建立物件)物件類別名稱ConnectionADODB.ConnectionErrorADODB.ErrorCommandADODB.CommandParameterADODB.ParameterRecordsetADODB.RecordsetFieldADODB.FieldPropertyADODB.Property如何建立ADO?宣告物件變數(shù)(使用物件類別)物件類別名稱C46如何建立ADO?例如要宣告一個Connection物件DimCnAsADODB.Connection物件變數(shù)物件類別完成宣告物件變數(shù),但是還沒有建立如何建立ADO?例如要宣告一個Connection物件物件變47如何建立ADO?要建立一個Connection物件DimCnAsADODB.ConnectionSetCn=NewADODB.Connection物件變數(shù)建立物件完成物件的建立如何建立ADO?要建立一個Connection物件物件變數(shù)建48其他建立ADO物件的方法DimCnAsADODB.ConnectionSetCn=NewADODB.ConnectionDimCnAsADODB.ConnectionSetCn=CreatObject(ADODB.Connection)DimCnAsNewADODB.Connection其他建立ADO物件的方法DimCnAsADODB.Co49使用ADO物件有了物件之後要做的是希望從資料庫中存取與操作資料如何做呢??現(xiàn)在就真的要靠自己了(懷念adodc控制項嗎?)第一步應(yīng)該是要先與資料庫取得聯(lián)繫所以Connection物件就先登場了使用ADO物件有了物件之後要做的是希望從資料庫中存取與操作資50Connection物件建立物件設(shè)定ConnectionString屬性

(還記得在adodc中也是設(shè)定此屬性,不過是程式自動產(chǎn)生的)使用Connection物件的Open方法Connection物件建立物件51ConnectionString屬性一字串型態(tài)的參數(shù)每個關(guān)鍵參數(shù)以;號區(qū)隔關(guān)鍵參數(shù)說明Provider連結(jié)資料庫時所提供的OLEDBProvider(JETEngine)DataSource連結(jié)資料庫的完整路徑Location連結(jié)的伺服器名稱UserID連結(jié)資料庫或伺服器時的使用者名稱Password連結(jié)資料庫或伺服器時的使用者密碼FileName使用DataLinkFile連結(jié)時.udl的檔名DSN使用ODBCDSN連結(jié)時的DSN名稱DriverODBC驅(qū)動程式的名稱DBQ使用ODBC連結(jié)時,資料庫的檔名ConnectionString屬性一字串型態(tài)的參數(shù)關(guān)鍵參數(shù)52Provider種類資料庫種類Provider名稱AccessMicrosoft.Jet.OLEDB.4.0ODBCMSDASQLSQLServerSQLODEDBOracleMSDAORAProvider種類資料庫種類Provider名稱Acces53連結(jié)開啟資料庫DimCnasADODB.ConnectionSetCn=NewADODB.ConnectionCn.ConnectionString=“Provider=Microsoft.Jet.OLEDB.4.0;”_&“DATASource=c:\vb6\db\book.mdb”Cn.open建立物件設(shè)定ConnectionString屬性使用Open方法連結(jié)開啟資料庫DimCnasADODB.Connect54關(guān)閉連結(jié)資料庫使用Close方法

Cn.Close不過如此只是將佔用的系統(tǒng)資源釋放,記憶體中的資料庫資料並不會被移除,可以再使用Cn.Open來再度開啟連結(jié)SetCn=nothing可完全從記憶體釋放Cn.close關(guān)閉連結(jié)資料庫使用Close方法55連結(jié)資料庫Open方法與ConnectionString屬性的合併Cn.ConnectionString=“Provider=Microsoft.Jet.OLEDB.4.0;”_&“DATASource=c:\vb6\db\book.mdb”Cn.open

Cn.open

“Provider=Microsoft.Jet.OLEDB.4.0;”_&“DATASource=c:\vb6\db\book.mdb”

或Cstr=“Provider=Microsoft.Jet.OLEDB.4.0;”_&“DATASource=c:\vb6\db\book.mdb”Cn.openCstr連結(jié)資料庫Open方法與ConnectionString屬性56使用ODBCDSN連結(jié)資料庫DimCnasADODB.ConnectionSetCn=NewADODB.ConnectionCn.ConnectionString=“DSN=cnBook”Cn.open

或DimCnasADODB.ConnectionSetCn=NewADODB.ConnectionCn.open

“DSN=cnBook”使用ODBCDSN連結(jié)資料庫DimCnasADODB57有Username與Password連結(jié)資料庫DimCnasADODB.ConnectionSetCn=NewADODB.ConnectionCn.ConnectionString=“DSN=cnbook;UserID=sa;Password=xxx”Cn.open

或DimCnasADODB.ConnectionSetCn=NewADODB.ConnectionCn.open

“DSN=cnbook”,”UserID=sa”,“Password=xxx”有Username與Password連結(jié)資料庫DimCn58Practice其中有關(guān)Recordset的部分留待下一節(jié)再詳述Practice其中有關(guān)Recordset的部分留待下一節(jié)再59連上資料庫後呢??終於可以連結(jié)上資料庫了,然後呢??應(yīng)該是要存取與操作資料,所以輪到Recordset物件登場連上資料庫後呢??終於可以連結(jié)上資料庫了,然後呢??應(yīng)該是要60建立Recordset物件建立Recordset物件設(shè)定Source與ActiveConnection屬性使用Open方法是不是與Connection物件的步驟類似?沒錯大部分的物件建立步驟都類似建立Recordset物件建立Recordset物件是不是與61建立Recordset物件的方法DimrsAsADODB.RecordsetSetrs=NewADODB.RecordsetDimrsAsADODB.RecordsetSetrs=CreatObject(ADODB.Recordset)DimrsAsNewADODB.Recordset建立Recordset物件的方法DimrsAsADOD62Source與ActiveConnection屬性Source:表示要連結(jié)的資料表ActiveConnection:表示連結(jié)的資料庫(即Connection物件)Source與ActiveConnection屬性Sourc63Source屬性DimrsasADODB.RecordsetSetrs=NewADODB.RecordsetRs.Source=“書籍”資料表名稱Source屬性DimrsasADODB.Record64AvtiveConnection屬性與Open方法DimCnasADODB.ConnectionDimRsasADODB.RecordsetSetCn=NewADODB.ConnectionCn.ConnectionString=“Provider=Microsoft.Jet.OLEDB.3.51;”_&“DATASource=c:\vb6\db\book.mdb”Cn.openSetRs=NewADODB.RecordsetRs.Source=“書籍”Rs.ActiveConnection=CnRs.openAvtiveConnection屬性與Open方法DimC65關(guān)閉資料表使用Close方法

Rs.Close不過如此只是將佔用的系統(tǒng)資源釋放,記憶體中的資料庫資料並不會被移除,可以再使用Rs.Open來再度開啟連結(jié)SetRs=nothing可完全從記憶體釋放Rs.close關(guān)閉資料表使用Close方法66PracticePractice67再論Recordset的Open方法Source與ActiveConnection的設(shè)定可以與Open方法合併Rs.Source=“書籍”Rs.ActiveConnection=Cn==Rs.open“書籍”,CnRs.openRecordset.openSource,ActiveConnection,Cursortype,Locktype,Options再論Recordset的Open方法Source與Activ68Cursortype標示如何操作資料表種類值說明AdOpenForwardOnly0只可向前移動AdOpenKeySet1可以自由移動AdOpenDynamic2可動態(tài)更新編輯AdOpenStatic3靜態(tài)更新編輯Cursortype標示如何操作資料表種類值說明AdOpen69CursorTypeDynamic:adOpenDynamic Fullyupdateablerecordset Allactionsmadebyotheruserswhiletherecordsetisopenarevisible Alltypesofmovement(upanddown) Keyset:adOpenKeyset Updateablerecordset Itpreventsaccesstorecordsthatotherusersaddafter

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論