注册 登录
编程论坛 VB6论坛

关于MDB的释放问题

linandceline 发布于 2019-01-14 15:02, 2457 次点击
数据库是在局域网的服务器上,各局域网成员都可以使用
MDB在使用中会有部分数据锁定,产生LDB。
我用LDB VIEWER来观察各用户在读或写数据库时的状态,
然后发现有好些个用户在使用时会长时间占用。
导致其他人员使用时速度会降很多

那么问题有两个:
1、.close这个语句是不是必须?我通篇代码里没有出现过一句,仅是把对象set了nothing;

2、还有什么方法能改善占用状况

[此贴子已经被作者于2019-1-14 15:03编辑过]

4 回复
#2
ZHRXJR2019-01-16 07:36
养成使用数据库与数据表后立即关闭与释放数据库对象与记录集对象的习惯:
在数据表使用结束时,使用 记录集对象.Close 语句关闭记录集对象,使用 Set 记录集对象 = NotHing 语句从内存释放记录集对象;
在数据库使用结束时,使用 数据库对象.Close 语句关闭数据库对象,使用 Set 数据库对象 = NotHing 语句从内存释放数据库对象。
比如 conn 是数据库对象,Rs 是记录集对象,在数据表使用结束后,这二个语句是必须的:
Rs.Close      
Set Rs = NotHing
在数据库使用结束后,这二个语句是必须的:
conn.Close      
Set conn = NotHing
而且二个语句的顺序不能错,只能首先关闭对象才能在内存释放对象。自己理解仅仅使用 Set conn = NotHing 或 Set Rs = NotHing 语句是无法释放对象的,因为对象是活动的,无法释放(语句无错误,不会报错)。
#3
linandceline2019-01-16 15:27
回复 2楼 ZHRXJR
主要是.close太麻烦了,稍有不慎就会出现2次打开
尤其是在循环里。
#4
icecool2019-01-16 21:25
你可以把数据库连接写在模块的一个函数conn里,
同时写一个connClose函数:
conn.close
set conn=nothing

需用到数据库时 call conn
用完call connclose
很方便的
#5
ZHRXJR2019-01-16 22:55
回复3楼 linandceline :
编程主要是逻辑问题,什么时间打开数据库、数据表,什么时间关闭释放数据库、数据表,根据编程需要及逻辑走向,如果思路正确,不可能发生二次打开的问题。
如果发生问题只能说明逻辑走向或思路有漏洞。
1