在上一遍文章中我們說了VB中基于ADO的數據庫訪問,接下來讓我們一起來看一下ADO的七個對象,其中我們會重點講述Command和Recordse兩個對象。
我們先通過下面這張圖對ADO的七個對象有一個大概的了解:
![計算機生成了可選文字: 非獨立對象+l錯公吳才,J象,依性連接對象。保存訪問數據庫過程中發生的錯誤,可以通免應用程序意外終止ErrorConneCtion連接對象,用于創建數據深連接。,一‘贊何數據庫操作的革礎’ACtiy6C0nnC6tion睜.-J'.,參數對象,依假于命令對象.用于為參數查詢提供數據。同時使用參斂對象和命令對象,可使數據庫對查詢進行預編譯,從而提高執行速度Act腸廿eConned.on屬忖p己r己nleter鹿卜Command命令對象用于執行動作查詢、、‘電滬z產:.:'-、,甘魷。協.方法碑子護戶一夕護,戶戶l字段對象,依枚于記錄集對象。獲得記錄染中的每一個字段的伯息FieldReCOrdset記錄集對象。保存來自葵本表或命令對象返lr.]的結果。使用記錄集對象幾乎可以完成所有的數據操作屬性對象,除了Error錯誤對象以外,拼一個對象都有。可以訪問特定對象的主要伯息Property甲](http://my.csdn.net/uploads/201207/26/1343294616_5090.png)
從圖中的關系線以及我們可以看出,當我們通過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 = cn
- cmd.CommandText = strSql
- cmd.CommandType = adCmdText
- rs.Open cmd, , adOpenStatic, adLockOptimistic