标题:请问怎么关闭数据库连接
只看楼主
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
结帖率:69.81%
已结贴  问题点数:15 回复次数:10 
请问怎么关闭数据库连接
程序代码:
        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可以被执行复制或者删除。
搜索更多相关主题的帖子: 出现 mdb 运行 语句 关闭 
2023-05-11 14:29
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:3 
查了一下MSDN  和 对象浏览器,  adodc 控件,不提供关闭连接的方法。
adodc 库倒是提供的。

解决办法:
1、改用 adodc 库,
2、如果adodc控件所在的窗口为子窗口,那关闭这个窗体试试。
   如果是主窗口,也可以这样尝试,新建一个主窗口,然后移动同一位置,再把原窗口关闭掉。

授人于鱼,不如授人于渔
早已停用QQ了
2023-05-11 16:03
东海ECS
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:Python
等 级:版主
威 望:19
帖 子:376
专家分:1454
注 册:2023-1-24
得分:3 
关闭用 Adodc1.Close 命令

会当凌绝顶,一览众山小.
2023-05-11 19:05
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
Adodc1 没有 Close方法

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

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

授人于鱼,不如授人于渔
早已停用QQ了
2023-05-11 19:17
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:3 
试试用Release看能否断开关闭
2023-05-11 19:57
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
得分:0 
以下是引用风吹过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文件进行复制与删除了。

以上的方法确实很笨,我想也不会是正确的做法,抛砖引玉吧,看看前辈们还有什么办法。
2023-05-11 22:39
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
得分:0 
以下是引用吹水佬在2023-5-11 19:57:04的发言:

试试用Release看能否断开关闭


前辈说的Release是怎么使用的呢?
2023-05-11 22:40
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用ictest在2023-5-11 22:40:58的发言:

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

Adodc1.Release
2023-05-11 23:03
cwa9958
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:247
专家分:1228
注 册:2006-6-25
得分:3 
4楼的方法是可以的,但是要加一条  Adodc1.Refresh
但是这样会出错,还要加一条错误处理语句。

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

还有:adodc控件不支持Release
2023-05-12 08:28
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用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
2023-05-12 09:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-512169-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030774 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved