在上一遍文章中我們說了VB中基於ADO的資料庫訪問,接下來讓我們一起來看一下ADO的七個對象,其中我們會重點講述Command和Recordse兩個對象。
我們先通過下面這張圖對ADO的七個對象有一個大概的瞭解:
的關係線以及我們可以看出,當我們通過Connection對象與資料來源建立串連以後,既可以通過Recordset對象對資料進行操作,也可以通過Command命令對象來執行查詢,然後在傳送給Recordset對象進行資料操作。
下面我們先說Recordset對象:
例如:
Dim objCn As New Connection Dim objRs As New Recordset Dim strCn As String Dim strSQL As String '建立資料庫連接 objCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & App.Path \執行個體1.mdb" objCn.Open '執行查詢命令,獲得使用者登入口令 strSQL = "SELECT 口令,身份 FROM 系統使用者 WHERE 使用者名稱='" & UserName & "'" Set objRs.ActiveConnection = objCn objRs.Open (strSQL) With objRs '建立用戶端的記錄集 .CursorLocation = adUseClient '指定使用用戶端游標 .CursorType = adOpenStatic '指定使用靜態游標 .Open "系統使用者", objCn, adOpenStatic, adLockReadOnly End With ShowData (lngPage) '顯示目前記錄頁數
我們來說一下Command對象:
使用Command對象之前,我們需要執行一下步驟:
1.通過設定ActiveConnection屬性是開啟的串連與Command對象關聯。
2.使用CommandText屬性定義命令(如SQL,儲存過程)的可執行文本。
3.使用commandType屬性指定命令類型。通過Parameter對象和Parameters集合定義參數化查詢或預存程序參數。
4.使用Execute方法執行命令並在適當的時候返回Recordset對象
5.使用 CreateParameter方法建立一個與命令相關的新的參數對象。
6.將Command對象傳遞給Recordset的Source屬性以便獲得資料。
具體實現:
Private Sub Form_Load() Dim strcn As String Set objCn = New Connection strcn = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;" & "Data Source=" & App.Path & "\執行個體5.mdb" objCn.ConnectionString = strcn objCn.Open '建立執行參數查詢的command 對象 objcmd Set objCmd = New Command Set objCmd.ActiveConnection = objCn '建立串連 With objCmd .CommandText = "select * from 系統使用者 where 使用者名稱 like ?" & "and 身份 like ?" '定義命令的可執行文本 .CommandType = adCmdText '指定命令類型 End With '為command對象建立參數 Dim parm As New Parameter Set parm = objCmd.CreateParameter("使用者名稱", adVarChar, adParamInput, 10) objCmd.Parameters.Append parm Set parm = objCmd.CreateParameter("身份", adVarChar, adParamInput, 10) objCmd.Parameters.Append parm et objRs = New Recordset objCmd("使用者名稱") = "%" & Trim(txtUserName) & "%" '%是什麼意思??? objCmd("身份") = "%" & txtStatus & "%" Set objRs = objCmd.Execute() '返回recordset對象 lbl4 = ""End Sub
我們還可以在一個Recordset對象實體中使用command對象:
Set cmd.ActiveConnection = cncmd.CommandText = strSqlcmd.CommandType = adCmdTextrs.Open cmd, , adOpenStatic, adLockOptimistic
以上是對ADO物件模型中一些對象的簡單理解,當然還很不全面,會在以後的學習中慢慢完善……