您的位置:程序门 -> vb -> 基础类



vb ado数据库对象关闭


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


vb ado数据库对象关闭[已结贴,结贴人:dongtianadf]
发表于:2007-04-26 10:55:22 楼主
如果局部变量在他所在的那段代码运行完就自动释放
这样是不是就不用添加
rs.close
set   rs=nothing
conn.close
set   conn=nothing
代码了
例如:
private   sub   command1_click()
dim   conn   as   new   adodb.connection
dim   rs   as   new   adodb.recordset
conn.connectionstring   =   "provider=microsoft.jet.oledb.4.0;data   source= "   &   app.path   &   "\db1.mdb;persist   security   info=false "
conn.cursorlocation   =   aduseclient
conn.open
rs.open   "select   *   from   gerenxinxi ",   conn,   3,   3
set   datagrid1.datasource   =   rs
datagrid1.refresh
end   sub

**********************************
private   sub   command1_click()
dim   conn   as   new   adodb.connection
dim   rs   as   new   adodb.recordset
conn.connectionstring   =   "provider=microsoft.jet.oledb.4.0;data   source= "   &   app.path   &   "\db1.mdb;persist   security   info=false "
if   rs.state   =   adstateopen   then   rs.close
conn.cursorlocation   =   aduseclient
conn.open
rs.open   "select   *   from   gerenxinxi ",   conn,   3,   3
set   datagrid1.datasource   =   rs
datagrid1.refresh
rs.close
set   rs   =   nothing
conn.close
set   conn   =   nothing
end   sub
只是datagrid1里的数据闪一下很快又关闭了,根本看不到datagrid1里的数据
************************
发表于:2007-04-26 11:22:341楼 得分:5
datagrid1中的数据是和rs做了绑定的,是对rs的反应
你的rs都释放了,datagrid1中的数据也没有了
发表于:2007-04-26 11:38:272楼 得分:0
command1_click:
rs.close
set   rs   =   nothing
conn.close
set   conn   =   nothing
end   sub
都关了当然不会显示,去掉
发表于:2007-04-26 11:47:023楼 得分:0
同意。
发表于:2007-04-26 12:53:344楼 得分:0
不能关掉
发表于:2007-04-26 14:51:515楼 得分:15
在form_unload事件中加上
if   conn.state=adstateopen   then   conn.close
set   conn=nothing
if   rs.state=adstateopen   then   rs.close
set   rs=nothing
在卸載程序的時候釋放就可以了。或者如果數據有變更,要及時在grid體現出來又不想重啟程序的話。在按鈕事件中添加

if   conn.state=adstateopen   then   conn.close
set   conn=nothing
if   rs.state=adstateopen   then   rs.close
set   rs=nothing
rs.cursorlocation   =   aduseclient
conn.open   conn.string
rs.open   ........
set   dategrid1.datasource=rs
发表于:2007-04-26 16:10:526楼 得分:0
command1_click:
rs.close
set   rs   =   nothing
conn.close
set   conn   =   nothing
end   sub
去掉,还能不能释放内存资源
发表于:2007-04-26 21:08:227楼 得分:0
应该可以释放,不知你如何得知没有释放?
发表于:2007-04-26 21:31:298楼 得分:0
在unload中释放就可
发表于:2007-04-28 08:08:029楼 得分:30
你应该将rs定义成窗体级的,就行了,你现在定义的是模块级的,退出按钮模块后就无效了.
发表于:2007-04-28 09:00:0710楼 得分:0
楼上的说对了


快速检索

最新资讯
热门点击