• 从dotNet到VB6之模仿构造OleDbDataAdapter与dataset结合


              大家用了这么久ado.net也充分享受到其带来到方便,不过有时我们由于项目的需求或环境条件限制,我们又回到VB6.0开发了,难免有时会觉得力不从心,主要是使用ADO去ADO.net的灵活性不同,特别是异步和对xml支持方面,不过今天我要说对是怎样在VB6.0中构造一个像.net中对OleDbDataAdapter 功能的假对象,比如说我们在dotNet下完成以下构造
                Dim sql As String = "select * from login"
            
    Dim Oda As New OleDbDataAdapter(sql, "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb")
            Dim ds As New DataSet
            Oda .Fill(ds, 
    "login")
            DataGrid1.DataSource = ds.Tables(0).DefaultView()
               '绑定到dataGrid

    以上体现了OleDbDataAdapter与dataset的优越性,到这时您已经可以从dataset随心所欲到取数据了,而在vb6.0中半面向对象设计的概念使结构体和独立的函数大量的被使用,当然我在这里要用的方法也就是用VB6函数模拟对象了如下步骤:
    ①:在应用中添加一个对adodb 2.7版本的引用
    ②添加module模块,在模块中加入以下代码
    Public Function newado(SQL As String, AccessDb As StringAs ADODB.Recordset
        
    Dim rs As ADODB.Recordset
        strconn 
    = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & AccessDb & ";Persist Security Info=False"
        
    Set rs = New ADODB.Recordset
        rs.Open SQL, strconn, adOpenStatic, adLockOptimistic, adCmdText
        
    Set newado = rs
        
    Set rs = Nothing
        
    'rs.CursorLocation = adUseClient
       ' rs.Open SQL, strconn, adOpenDynamic, adLockBatchOptimistic,adLockBatchOptimistic
    End Function
    ③:这时您已经可以在任意地方方便的申请,使用,回收ADODB.Recordset对象如:
    dim myado as ADODB.Recordset
    set myado =newado("select * from stu","db1.mdb")
    while not myado.EOF
          
    '……
          myado.next
    wend
    myado.close

    当然以上函数可以更灵活,就是把Provider也作为参数,但是一般我们是很少改变数据库提供程序的
    如果您像与控件绑定,那么需要在公共函数里使用客户端游标语句
    rs.CursorLocation = adUseClient
    那么这时在为关闭myado时都可以绑定到控件,如:
    set dataGrid.datasource=myado
    到这里,大家现在也可以像ado.net那样享受到编写代码的方便,无论你写什么数据库项目,都可以马上都把函数复制到新项目的module写立即使用了。
  • 相关阅读:
    shell 操作钉钉机器人实现告警提醒
    谨慎 mongodb 关于数字操作可能导致类型及精度变化
    数据库如何应对保障大促活动
    SQL Server Alwayson架构下 服务器 各虚拟IP漂移监控告警的功能实现 -1(服务器视角)
    通过 Telegraf + InfluxDB + Grafana 快速搭建监控体系的详细步骤
    MySQL数据库Inception工具学习与测试 笔记
    MongoDB 中数据的替换方法实现 --类Replace()函数功能
    MongoDB 中的【加减乘除】运算
    MySQL索引设计需要考虑哪些因素?
    关于SQL Server 数据库归档的一些思考和改进
  • 原文地址:https://www.cnblogs.com/same/p/384418.html
Copyright © 2020-2023  润新知