ADO对象的使用

     在上一遍文章中我们说了VB中基于ADO的数据库访问,接下来让我们一起来看一下ADO的七个对象,其中我们会重点讲述CommandRecordse两个对象。

我们先通过下面这张图对ADO的七个对象有一个大概的了解:

 

 计算机生成了可选文字: 非独立对象+l错公吴才,J象,依性连接对象。保存访问数据库过程中发生的错误,可以通免应用程序意外终止ErrorConneCtion连接对象,用于创建数据深连接。,一‘赞何数据库操作的革础’ACtiy6C0nnC6tion睁.-J'.,参数对象,依假于命令对象.用于为参数查询提供数据。同时使用参敛对象和命令对象,可使数据库对查询进行预编译,从而提高执行速度Act肠廿eConned.on属忖p己r己nleter鹿卜Command命令对象用于执行动作查询、、‘电沪z产:.:'-、,甘鱿。协.方法碑子护户一夕护,户户l字段对象,依枚于记录集对象。获得记录染中的每一个字段的伯息FieldReCOrdset记录集对象。保存来自葵本表或命令对象返lr.]的结果。使用记录集对象几乎可以完成所有的数据操作属性对象,除了Error错误对象以外,拼一个对象都有。可以访问特定对象的主要伯息Property甲

 

     从图中的关系线以及我们可以看出,当我们通过Connection对象与数据源建立连接以后,既可以通过Recordset对象对数据进行操作,也可以通过Command命令对象来执行查询,然后在传送给Recordset对象进行数据操作。

下面我们先说Recordset对象:

计算机生成了可选文字: adusecllent:客户端临时表,可以提供重新排序和使用索引查找记录等adUseserver:服务器端临时表,由服务器端的被检索的数据源维护ACtiVeC0nn仁etion代表数据源的活动连接CUrS0rLOCationadlockReadonlv,默认值,只读,无法更改数据adL0ckpessimistic:保守式记录锁定,在编辑时立即锁定数据源adLockoptimistic:开放式记录锁定,执行updata方法时锁定记录adlockoatc卜optimistic,开放式批更新,执行updataoatch方法时锁定记录Open打开记录集。例如:objrs.open(’·soL〔cT口令rROM系统用户wH〔R〔用户名=,’王永俊,'")LockTypeR6COrdSRecordCount:确定记录集中的记录数测试当前记录位置是否位于记录集的第·个记录之前.如果位于则返回丫rue,否则返回falseBOf测试当前记录位置是否位于记录集的最后一个记录之后。如果位于则返回下rue,否则返回falseEOf,HOVeFirstMOVeNeXtMOVeL日StMOVePreVIOUS

例如:

        

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对象传递给RecordsetSource属性以便获得数据。

具体实现:

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

 

以上是对ADO对象模型中一些对象的简单理解,当然还很不全面,会在以后的学习中慢慢完善……

评论 47
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值