CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

程序不能正常关闭,请高手指点。

楼主cszyt(发酵)2002-04-11 10:12:05 在 VB / 基础类 提问

各位高手:  
              我现在的一个程序,如果用数据连接打开一个数据库,关闭程序时,系统提示:  
        应用程序错误:  
        “0x07....”指令引用的“0x......”内存。该内存不能为“read”.要终止程序,请单击“确定”. 问题点数:50、回复次数:8Top

1 楼gump2000(阿甘)回复于 2002-04-11 10:13:47 得分 10

在关闭程序以前  
  把全部recordset   connection.close   还有   set   nothing  
  再看看  
  Top

2 楼ltpao(啊炮)回复于 2002-04-11 10:15:32 得分 0

你的程序中是否使用了DBGridTop

3 楼cszyt(发酵)回复于 2002-04-11 10:21:46 得分 0

多谢,不过象  
  Dim   ws   As   Workspace    
  Dim   db   As   Database    
  Dim   rs   As   Recordset    
  这些要引用什么?  
  Top

4 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2002-04-11 10:22:12 得分 20

如何在数据控件断开所有的数据连接    
  如果在代码中使用了数据控件如   DAO,   RDO,   或   ADO,   在退出时应该关闭所有打开的   recordset,   database,和   workspace   。   虽然对象能自动注销,   但是数据连接不会马上断开,可能会导致一些内存不能被系统重新分配。  
   
  下面的代码可以关闭所有打开的   DAO   workspace,并释放所占的内存。  
   
  Private   Sub   Form_Unload(Cancel   As   Integer)  
  On   Error   Resume   Next  
  '  
  Dim   ws   As   Workspace  
  Dim   db   As   Database  
  Dim   rs   As   Recordset  
  '  
  For   Each   ws   In   Workspaces  
  For   Each   db   In   ws.Databases  
  For   Each   rs   In   db.Recordsets  
  rs.Close  
  Set   rs   =   Nothing  
  Next  
  db.Close  
  Set   db   =   Nothing  
  Next  
  ws.Close  
  Set   ws   =   Nothing  
  Next  
  '  
  End   Sub    
   
     
   
   
     
  Top

5 楼cszyt(发酵)回复于 2002-04-11 10:24:15 得分 0

对呀,上面的代码我也看到过,我用的数据连接也可以吗?  
  Top

6 楼cszyt(发酵)回复于 2002-04-11 10:39:41 得分 0

我用的不是DAO呀?Top

7 楼nebular(星云)回复于 2002-04-11 10:42:22 得分 20

一个程序员应该有一个良好的习惯:  
  用完一个RECORDSET之后,使用下面的语句显式地关闭它  
  rs.close  
  set   rs=nothing  
  同样对待ADO.CONNECTION  
  cn.close  
  set   cn=nothing  
  一般来说,CONNECTION可以等待到程序结束时关闭它,不过RECORDSET最好是在定义它的过程结束的同时关闭。注意尽量不要定义全局的RECORDSET。Top

8 楼cszyt(发酵)回复于 2002-04-11 11:58:08 得分 0

可能是我误导了大家:  
  我知道了,我在系统中用了一个VertMenu控件,不过只要打开数据库时就出错,不打开不出错,把控件删掉打开数据库就不出错,  
  到底怎么办呢???  
  请各位高手指点!!Top

相关问题

  • 如何使异常不抛出,程序正常运行?有请高手指点。。。
  • sos,用Ado连接空表,关闭程序时出错怎样解决,请各位指点
  • idTCPClient在程序关闭时如何正常关闭?
  • vb+Access97编的程序如何在VB+Access2000下正常运行?急请高手指点,跟也给分.
  • 一段小小的Java程序,请指点指点!!!多谢!
  • 程序烧不进去,请前辈指点指点
  • Delphi编的程序不能正常关闭?
  • 如何正常关闭另一个程序?谢!
  • 登录程序出错 请指点
  • 程序崩溃,请高手指点!

关键词

  • 控件
  • 内存
  • 数据
  • 代码
  • 数据库
  • ws
  • 连接
  • 系统
  • db
  • closeset

得分解答快速导航

  • 帖主:cszyt
  • gump2000
  • lihonggen0
  • nebular

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo