ADO中共有7个对象,其中在每个例子中独立发挥作用的为Connention(连接),Recordset(记录集)和Command(命令)。对于这个三个对象可以通过数据库调用的顺序进行串联,首先是建立连接,之后通过命令得到数据,最后将数据放到一个集合中。这个逻辑依然可以像之前的例子一样在生活找到映射,比如,与数据库中数据传输(发送和接受)可以理解为两个人互相说话交流,首先要做的一定是打招呼(建立连接),其次,其中一人说话(发送消息),另一个要先经过大脑思考(进入记录集),然后在做出反应等等…
在代码中的表现:
一、首先是建立与数据库的连接,有两种表现形式:
1.直接按地址链接
Dim objCn As New ADODB.Connection '创建连接
Dim objRs As New Recordset '容纳一个来自数据库表的记录集
'建立数据库连接
objCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\实例1.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"
objCn.Open '打开链接
2.连接DSN(需要先在电脑中建立数据源,数据源中包含路径,所以我理解他们的本质是相同的)
Set objCn = New Connection '实例化连接对象
objCn.Open "DSN=实例1-32" '建立数据库连接
Set objRs = New Recordset '创建客户端的记录集
二、其次是进行操作(增删改查)
1.直接调用SQL语句
strSQL = "SELECT 口令 FROM 系统用户 WHERE 用户名= '" & txtUserName & " '"
Set objRs.ActiveConnection = objCn '设置当前的 连接对象。
objRs.Open (strSQL) '打开记录集(sql命令
2.通过Command对象进行操作,数据的存储由Recordset来进行
Dim objRs As New Recordset '定义局部记录集合
objCmd("用户名") = "%" & txtUser & "%"
Set objRs = objCmd.Execute() '查询 获得查询记录
'为objecmd创建参数
Set objCmd = New Command
Set objCmd.ActiveConnection = objCn
With objCmd
.CommandText = "SELECT*FROM 系统用户 WHERE 用户名 LIKE ?"
.CommandType = adCmdText
End With
Dim Parm As New Parameter '存储过程变量
Set Parm = objCmd.CreateParameter("用户名", adVarChar, adParamInput, 10) '追加内容
objCmd.Parameters.Append Parm
注意:使用Command的操作,首先利用objCmd的CreateParameter()方法,返回一个 Parameter 对象,该对象包含指定的一部分属性写好。再根据使用情况,传入当时需求的数据,组成一个完整的查询语句
Set Parm = objCmd.CreateParameter("用户名", adVarChar, adParamInput, 10)
objCmd("用户名") = "%" & txtUser & "%"
三、最后,关闭连接,释放资源
'释放command和connection对象
objCn.Close
Set objCmd = Nothing
Set objCn = Nothing
剩下的四个对象是依赖于上面三个对象发挥作用
Recordset(记录集)→Field(字段)
Connention(连接)→Error(错误处理)
Command(命令)→ Parameter(参数)
Property属性对象则与普通对象的属性类似,只是以上3个独一对象的属性而已,同样的对象的同一个属性,均是相同的操作。