注册 登录
编程论坛 VB6论坛

请问怎么关闭数据库连接

ictest 发布于 2023-05-11 14:29, 1235 次点击
程序代码:
        Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\UID.mdb;Persist Security Info=False"
        Adodc1.RecordSource = "select * from UID"
        Adodc1.Refresh
        Set DataGrid1.DataSource = Adodc1
        DataGrid1.Columns(0).Width = 1500
        DataGrid1.Columns(1).Width = 2500
        Label2.Caption = "数据行数为  " & Adodc1.Recordset.RecordCount & "  行"

以上语句运行正常,数据在DataGrid1中显示正常。

在运行完“Adodc1.Refresh”这一句时,会出现UID.ldb文件(或者如果没有“Adodc1.Refresh”这一句,运行完Set DataGrid1.DataSource = Adodc1时,也会出现UID.ldb文件),这时对该数据库进行复制或者删除时,就会出现《实时错误‘70’,拒绝的权限》。

请问在以上语句的最后面添加什么语句可以关闭与UID.mdb的连接,使UID.ldb文件消失,使UID.mdb可以被执行复制或者删除。
10 回复
#2
风吹过b2023-05-11 16:03
查了一下MSDN  和 对象浏览器,  adodc 控件,不提供关闭连接的方法。
adodc 库倒是提供的。

解决办法:
1、改用 adodc 库,
2、如果adodc控件所在的窗口为子窗口,那关闭这个窗体试试。
   如果是主窗口,也可以这样尝试,新建一个主窗口,然后移动同一位置,再把原窗口关闭掉。
#3
东海ECS2023-05-11 19:05
关闭用 Adodc1.Close 命令
#4
风吹过b2023-05-11 19:17
Adodc1 没有 Close方法

百度了一下,给的方案是
先关闭 表
 Adodc1.Recordset.Close
再清掉查询命令
 Adodc1.RecordSource = ""
最后再清掉连接字串
 Adodc1.ConnectionString = ""

未测试,不知道可行不可行。
网上也说不知道 是否真正的关闭了。
#5
吹水佬2023-05-11 19:57
试试用Release看能否断开关闭
#6
ictest2023-05-11 22:39
以下是引用风吹过b在2023-5-11 19:17:44的发言:

Adodc1 没有 Close方法

百度了一下,给的方案是
先关闭 表
 Adodc1.Recordset.Close
再清掉查询命令
 Adodc1.RecordSource = ""
最后再清掉连接字串
 Adodc1.ConnectionString = ""

未测试,不知道可行不可行。
网上也说不知道 是否真正的关闭了。


前辈的方法我试了一下,UID.ldb文件还是存在,还是不能复制与删除,说明还是没有断开连接

想到一个笨方法并且尝试了一下,再建立一个空的MDB数据库,引用完UID.mdb后,再用Adodc1引用空数据库,转移一下目标,惊喜的是,UID.ldb文件消失,可以对UID.MDB文件进行复制与删除了。

以上的方法确实很笨,我想也不会是正确的做法,抛砖引玉吧,看看前辈们还有什么办法。
#7
ictest2023-05-11 22:40
以下是引用吹水佬在2023-5-11 19:57:04的发言:

试试用Release看能否断开关闭


前辈说的Release是怎么使用的呢?
#8
吹水佬2023-05-11 23:03
以下是引用ictest在2023-5-11 22:40:58的发言:

前辈说的Release是怎么使用的呢?

Adodc1.Release
#9
cwa99582023-05-12 08:28
4楼的方法是可以的,但是要加一条  Adodc1.Refresh
但是这样会出错,还要加一条错误处理语句。

    On Error Resume Next
   
    Adodc1.Recordset.Close
    Adodc1.RecordSource = ""
    Adodc1.ConnectionString = ""
    Adodc1.Refresh

还有:adodc控件不支持Release
#10
吹水佬2023-05-12 09:24
以下是引用cwa9958在2023-5-12 08:28:21的发言:

还有:adodc控件不支持Release

不清楚用的是什么adodc控件
下面这个adodc控件是支持Release方法
windows10
Microsoft ADO Data Control 6.0 (OLEDB)
文件: c:\windows\syswow64\msadodc.ocx
只有本站会员才能查看附件,请 登录
#11
牛掰2023-05-12 12:19
回复 楼主 ictest
我来说句公道话:Adodc1.Recordset.Close '断开绑定连接
1