資料控制項與資料存取物件課件_第1頁
資料控制項與資料存取物件課件_第2頁
資料控制項與資料存取物件課件_第3頁
資料控制項與資料存取物件課件_第4頁
資料控制項與資料存取物件課件_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

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

與Field物件屬性的物件物件間相對關係ConnectionRecordsetFieldsFieldCommandErrorPropertyPropertyPropertyParameter(s)物件集合物件如何存取物件成員?除了Recordset.Field(1)的寫法外也可以使用物件的名稱來存取HOW?Recordset對應的是一個資料表Fields對應的是一筆資料Field對應的是一筆資料中的某個欄位記欄位名稱一定比記索引編號更容易所以欄位一定要取有意義的名稱如何存取物件成員?除了Recordset.Field(1)的寫法外也可以使用Recordset.Field(“書名”)Recordset(“書名”)Recordset.Field!書名Recordset!書名ADO的功用移動紀錄更新紀錄新增紀錄刪除紀錄搜尋紀錄篩選記錄排序紀錄還記得Adodc控制項中也介紹過此些功能嗎?如何建立ADO?宣告物件變數(使用物件類別)將物件型態帶入變數中(真正建立物件)物件類別名稱ConnectionADODB.ConnectionErrorADODB.ErrorCommandADODB.CommandParameterADODB.ParameterRecordsetADODB.RecordsetFieldADODB.FieldPropertyADODB.Property如何建立ADO?例如要宣告一個Connection物件DimCnAsADODB.Connection物件變數物件類別完成宣告物件變數,但是還沒有建立如何建立ADO?要建立一個Connection物件DimCnAsADODB.ConnectionSetCn=NewADODB.Connection物件變數建立物件完成物件的建立使用ADO物件有了物件之後要做的是希望從資料庫中存取與操作資料如何做呢??現在就真的要靠自己了(懷念adodc控制項嗎?)第一步應該是要先與資料庫取得聯繫所以Connection物件就先登場了Connection物件建立物件設定ConnectionString屬性

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

Cn.Close不過如此只是將佔用的系統資源釋放,記憶體中的資料庫資料並不會被移除,可以再使用Cn.Open來再度開啟連結SetCn=nothing可完全從記憶體釋放Cn.close連結資料庫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有Username與Password連結資料庫DimCnasADODB.ConnectionSetCn=NewADODB.ConnectionCn.ConnectionString=“DSN=cnbook;UserID=sa;Password=xxx”Cn.open

或DimCnasADODB.ConnectionSetCn=NewADODB.ConnectionCn.open

“DSN=cnbook”,”UserID=sa”,“Password=xxx”Practice其中有關Recordset的部分留待下一節再詳述連上資料庫後呢??終於可以連結上資料庫了,然後呢??應該是要存取與操作資料,所以輪到Recordset物件登場建立Recordset物件的方法DimrsAsADODB.RecordsetSetrs=NewADODB.RecordsetDimrsAsADODB.RecordsetSetrs=CreatObject(ADODB.Recordset)DimrsAsNewADODB.RecordsetSource與ActiveConnection屬性Source:表示要連結的資料表ActiveConnection:表示連結的資料庫(即Connection物件)關閉資料表使用Close方法

Rs.Close不過如此只是將佔用的系統資源釋放,記憶體中的資料庫資料並不會被移除,可以再使用Rs.Open來再度開啟連結SetRs=nothing可完全從記憶體釋放Rs.closePractice再論Recordset的Open方法Source與ActiveConnection的設定可以與Open方法合併Rs.Source=“書籍”Rs.ActiveConnection=Cn==Rs.open“書籍”,CnRs.openRecordset.openSource,ActiveConnection,Cursortype,Locktype,OptionsCursortype標示如何操作資料表種類值說明AdOpenForwardOnly0只可向前移動AdOpenKeySet1可以自由移動AdOpenDynamic2可動態更新編輯AdOpenStatic3靜態更新編輯CursorTypeDynamic: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&Delete使用CursortypeRs.Source=“書籍”Rs.ActiveConnection=CnRs.Cursortype=AdOpenDynamicRs.open或Rs.Open“書籍”,Cn,AdOpenDynamicLockType標示如何鎖定資料表種類值說明AdOpenReadOnly1唯讀AdOpenPessimistic2悲觀鎖定,取得資料表後鎖定AdOpenOptimistic3樂觀鎖定,更新時才鎖定AdOpenBatchOptimistic4批次樂觀鎖定,需下UPDATEBatchLockTypeadLockReadOnly

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

Recordlockduringediting Lockouteveryoneelsefromtherecordyou’reediting LockfromthetimeoffirstchangeuntilcalltheUpdatemethodadLockOptimistic

Nolockduringediting LocktherecordonlyduringthecalltoUpdateadLockBatchOptimistic Nolockduringediting(modify,ins

溫馨提示

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

評論

0/150

提交評論