设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3347|回复: 9
打印 上一主题 下一主题

[ADO/DAO] ADO函数如何在获取Recordset对象后关闭Connection

[复制链接]
跳转到指定楼层
1#
发表于 2012-3-31 08:03:02 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
6金钱
本帖最后由 LeeTien 于 2012-3-31 08:04 编辑

写了一个ADO函数来获取Recordset对象
如下:
Public Function ADORs(ByVal data As String, ByVal Password As String, ByVal sql As String) As ADODB.Recordset

    Dim con As ADODB.Connection
    Dim rs As ADODB.Recordset
   
    If con Is Nothing Then
        Set con = New ADODB.Connection
        Set rs = New ADODB.Recordset
    End If
      
    If Len(Password) = 0 Then
        con.ConnectionString = "provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & data & "ersist Security Info=False"
    Else
        con.ConnectionString = "provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & data & ";Jet OLEDBatabase Password=" & masterDataPassword
    End If
    con.Open
    rs.CursorLocation = adUseClient
    sql = Trim(sql)
    rs.Open sql, con, adOpenKeyset, adLockPessimistic
   
    Set ADORs = rs

End Function

现在面临这样一个问题:要获取Recordset对象,不能在函数体内关闭Connection对象,也就是不能执行con.Close操作。这样会使程序一直占用连接,有什么办法在获取Recordset对象后关闭Connection对象吗。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2012-4-1 09:21:54 | 显示全部楼层
已解决无需再回复
谢谢
在ADO 必须保持Connection才获取Recordset
这个在ADO中无法实现
通过ADO.net
才用这个设计
回复

使用道具 举报

3#
 楼主| 发表于 2012-4-1 10:08:49 | 显示全部楼层
ADO无法实现
ADO.net已解决了
这是设计问题
数据量小时怎么连接都没神马问题
大并发时ADO的弊端就出来了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-22 23:57 , Processed in 0.169807 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表