实例与举一反三之比较(二)

本文通过实例解析了ADO技术在访问数据库时的不同方式,包括连接数据库、使用RecordSet对象进行数据操作以及优化数据库连接与记录浏览的策略。通过对比原例与本例,阐述了在数据库操作中引入客户端临时表、优化数据库连接和更新操作的方法,旨在提升数据处理效率和用户体验。

实例2:使用ADO访问数据源(记录浏览窗口)

举一反三(1):

 

   不同点:打开方式不同。

 

原例:

 

    objCn.Open "DSN=实例2DSN"               '建立数据库连接

 

本例:


    strcn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "/数据库/db1.mdb"
    objCn.Open strcn               '建立数据库连接


举一反三(2):

 

    不同点:使用切断连接的RecordSet对象(原例为连接的RecordSet对象)

原例:

 

    With objRS
        .CursorLocation = adUseClient     '指定游标位置
        .CursorType = adOpenStatic          '指定使用键集游标
        .LockType = adLockOptimistic        '指定锁定类型
        .Open "SELECT * FROM 系统用户", objCn
    End With

 

Private Sub DoSave()
    If isNeedSave Then                      '判断当前记录是否被修改
        objRS.Fields("用户名").Value = txtUserName
        objRS.Fields("口令").Value = txtPassword
        objRS.Update                        '执行更新操作
    End If
End Sub

本例:

 

    With objRS
        .CursorLocation = adUseClient       '指定游标位置
        Set .ActiveConnection = objCn
        .CursorType = adOpenStatic          '指定使用键集游标
        .LockType = adLockOptimistic    '指定锁定类型
        .Open "SELECT * FROM 系统用户"
        Set .ActiveConnection = Nothing
    End With

 


Private Sub DoSave()
    If isNeedSave Then                      '判断当前记录是否被修改
        objRS.Fields("用户名").Value = txtUserName
        objRS.Fields("口令").Value = txtPassword
        objCn.Open
        Set objRS.ActiveConnection = objCn
        objRS.Update                        '执行更新操作
        Set objRS.ActiveConnection = Nothing
        objCn.Close
    End If
End Sub


举一反三(3):

     不同点:临时表位置不同(原例为客户端临时表,本例为服务器端临时表,因为服务器端临时表AbsolutePosition属性值始终为-1,所以本例中需用变量来代替AbsolutePosition属性值)

原例:

 

    txtMsg = objRS.AbsolutePosition & "/" & objRS.RecordCount

本例:

 

    txtMsg = "1/" & objRS.RecordCount
    RecordIndex = 1

    objRS.MoveNext          '使下一记录成为当前记录
    RecordIndex = RecordIndex + 1
    If objRS.EOF Then
        objRS.MoveLast
        RecordIndex = RecordIndex - 1
    End If
    txtMsg = RecordIndex & "/" & objRS.RecordCount

    objRS.MovePrevious          '使前一记录成为当前记录
    RecordIndex = RecordIndex - 1
    If objRS.BOF Then
        objRS.MoveFirst
        RecordIndex = RecordIndex + 1
    End If
    txtMsg = RecordIndex & "/" & objRS.RecordCount

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值