在上一遍文章中我們說(shuō)了VB中基于ADO的數(shù)據(jù)庫(kù)訪問(wèn),接下來(lái)讓我們一起來(lái)看一下ADO的七個(gè)對(duì)象,其中我們會(huì)重點(diǎn)講述Command和Recordse兩個(gè)對(duì)象。
我們先通過(guò)下面這張圖對(duì)ADO的七個(gè)對(duì)象有一個(gè)大概的了解:
![計(jì)算機(jī)生成了可選文字: 非獨(dú)立對(duì)象+l錯(cuò)公吳才,J象,依性連接對(duì)象。保存訪問(wèn)數(shù)據(jù)庫(kù)過(guò)程中發(fā)生的錯(cuò)誤,可以通免應(yīng)用程序意外終止ErrorConneCtion連接對(duì)象,用于創(chuàng)建數(shù)據(jù)深連接。,一‘贊何數(shù)據(jù)庫(kù)操作的革礎(chǔ)’ACtiy6C0nnC6tion睜.-J'.,參數(shù)對(duì)象,依假于命令對(duì)象.用于為參數(shù)查詢提供數(shù)據(jù)。同時(shí)使用參斂對(duì)象和命令對(duì)象,可使數(shù)據(jù)庫(kù)對(duì)查詢進(jìn)行預(yù)編譯,從而提高執(zhí)行速度Act腸廿eConned.on屬忖p己r己nleter鹿卜Command命令對(duì)象用于執(zhí)行動(dòng)作查詢、、‘電滬z產(chǎn):.:'-、,甘魷。協(xié).方法碑子護(hù)戶一夕護(hù),戶戶l字段對(duì)象,依枚于記錄集對(duì)象。獲得記錄染中的每一個(gè)字段的伯息FieldReCOrdset記錄集對(duì)象。保存來(lái)自葵本表或命令對(duì)象返lr.]的結(jié)果。使用記錄集對(duì)象幾乎可以完成所有的數(shù)據(jù)操作屬性對(duì)象,除了Error錯(cuò)誤對(duì)象以外,拼一個(gè)對(duì)象都有??梢栽L問(wèn)特定對(duì)象的主要伯息Property甲](http://my.csdn.net/uploads/201207/26/1343294616_5090.png)
從圖中的關(guān)系線以及我們可以看出,當(dāng)我們通過(guò)Connection對(duì)象與數(shù)據(jù)源建立連接以后,既可以通過(guò)Recordset對(duì)象對(duì)數(shù)據(jù)進(jìn)行操作,也可以通過(guò)Command命令對(duì)象來(lái)執(zhí)行查詢,然后在傳送給Recordset對(duì)象進(jìn)行數(shù)據(jù)操作。
下面我們先說(shuō)Recordset對(duì)象:

例如:
- Dim objCn As New Connection Dim objRs As New Recordset
- Dim strCn As String
- Dim strSQL As String
- '建立數(shù)據(jù)庫(kù)連接
- objCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
- "Data Source=" & App.Path \實(shí)例1.mdb"
- objCn.Open
- '執(zhí)行查詢命令,獲得用戶登錄口令
- strSQL = "SELECT 口令,身份 FROM 系統(tǒng)用戶 WHERE 用戶名='" & UserName & "'"
- Set objRs.ActiveConnection = objCn
- objRs.Open (strSQL)
- With objRs '創(chuàng)建客戶端的記錄集
- .CursorLocation = adUseClient '指定使用客戶端光標(biāo)
- .CursorType = adOpenStatic '指定使用靜態(tài)光標(biāo)
- .Open "系統(tǒng)用戶", objCn, adOpenStatic, adLockReadOnly
- End With
- ShowData (lngPage) '顯示當(dāng)前記錄頁(yè)數(shù)
我們來(lái)說(shuō)一下Command對(duì)象:
使用Command對(duì)象之前,我們需要執(zhí)行一下步驟:
1.通過(guò)設(shè)置ActiveConnection屬性是打開(kāi)的連接與Command對(duì)象關(guān)聯(lián)。
2.使用CommandText屬性定義命令(如SQL,儲(chǔ)存過(guò)程)的可執(zhí)行文本。
3.使用commandType屬性指定命令類(lèi)型。通過(guò)Parameter對(duì)象和Parameters集合定義參數(shù)化查詢或存儲(chǔ)過(guò)程參數(shù)。
4.使用Execute方法執(zhí)行命令并在適當(dāng)?shù)臅r(shí)候返回Recordset對(duì)象
5.使用 CreateParameter方法創(chuàng)建一個(gè)與命令相關(guān)的新的參數(shù)對(duì)象。
6.將Command對(duì)象傳遞給Recordset的Source屬性以便獲得數(shù)據(jù)。
具體實(shí)現(xiàn):
- 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 & "\實(shí)例5.mdb"
- objCn.ConnectionString = strcn
- objCn.Open
-
- '創(chuàng)建執(zhí)行參數(shù)查詢的command 對(duì)象 objcmd
-
- Set objCmd = New Command
- Set objCmd.ActiveConnection = objCn '創(chuàng)建連接
-
- With objCmd
- .CommandText = "select * from 系統(tǒng)用戶 where 用戶名 like ?" & "and 身份 like ?"
- '定義命令的可執(zhí)行文本
- .CommandType = adCmdText '指定命令類(lèi)型
- End With
- '為command對(duì)象創(chuàng)建參數(shù)
- 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對(duì)象
- lbl4 = ""
- End Sub
我們還可以在一個(gè)Recordset對(duì)象實(shí)體中使用command對(duì)象:
- Set cmd.ActiveConnection = cn
- cmd.CommandText = strSql
- cmd.CommandType = adCmdText
- rs.Open cmd, , adOpenStatic, adLockOptimistic