CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

超头痛,在退出程序时出错,请DELHPI高手指点迷经!TKS

楼主sundgy(阳光男生)2006-07-03 13:39:00 在 Delphi / 数据库相关 提问

DELPHI   +SQL   SERVER2000编写一小软件,程序在关闭时出现如所示错误提示,  
                                      Debugger   Exception   Notification(注:标题)  
  Project   mp.exe   raised   exception   class   EAccessViolation   with   message   'Access   violation   at   address   0040489c   in   module   'mp.exe'.Read   of   address   00000018'.Process   stopped   .Use   Step   or   Run   to   continue.  
   
  点击确定后出下如下所示提示,  
                                    Error(注:标题)  
  Runtime   error   216   at   004039C6.  
   
  我怀疑是数据库有问题,因为如果我换上以前的数据库不会出现这种情况,昨天我导了一些数据进去就出现种错误提示,数据库连接我采用的是动态数据库连接,这应该不是情况所在,因为如我之前所述,程序没办,只是在导入一些数据进去就出现这种问题,请问怎么解决? 问题点数:100、回复次数:25Top

1 楼fenger8293(http://www.pceggs.cn/pgComDefault.aspx?ID=191016)回复于 2006-07-03 13:45:27 得分 10

你看看你退出程序的时候做了什么工作.是否有内存引用上的不合理的地方.Top

2 楼zaza_bbface(我试着成熟一点~)回复于 2006-07-03 13:58:45 得分 10

可能是释放资源时出了错Top

3 楼wlxc(人在江湖)回复于 2006-07-03 14:00:33 得分 10

可能是释放资源时出了错  
  Top

4 楼grjs2004(在岸边钓不到大鱼,只好下水去摸虾米!)回复于 2006-07-03 14:20:09 得分 10

要释放内存!  
  Top

5 楼swcsoft(对不起,我踩到你尾巴了!)回复于 2006-07-03 14:24:30 得分 20

楼主  
   
      case   application.MessageBox('退出系统吗?','询问',33)   of  
              1:   application.Terminate;  
              2:   Action:=caNone;  
      end;  
   
  你把退出的代码换成这样试一下。。Top

6 楼wudi_1982(向伴水学习|胃出血,住院中)回复于 2006-07-03 14:32:56 得分 5

把代码贴出来看看。。这种问题不好说。。一般是资源释放得问题。。自己好好研究研究代码。估计只有你自己解决了。Top

7 楼Rubi(浪迹Csdn各个板块!MS-Borland-IBM-SUN-水区-在去哪里呢?)回复于 2006-07-03 14:34:21 得分 5

2:   Action:=caNone;  
   
  Action:=caFree;看看Top

8 楼dinglinger(小呆之家)回复于 2006-07-03 14:37:40 得分 10

,数据库连接我采用的是动态数据库连接,  
  //---估计是你在DLL中退出释放内存地址出错或是在DLL中释放内存后,主程序再次操作不存在的资源造成的内存地址访问错.  
  你好好查查是不是DLL的APPLICATION与主程序中APPLICATION的控制句柄的转让的问题.Top

9 楼sundgy(阳光男生)回复于 2006-07-04 08:39:09 得分 0

关键是如果我换用我以前的数据库,退出程序是不会出什么问题的哟.我的主程序退出代码如下:  
    action   :=   cafree;  
    main   :=   nil;Top

10 楼sundgy(阳光男生)回复于 2006-07-04 08:40:41 得分 0

完整退出主程序如下代码:  
  procedure   TMain.FormClose(Sender:   TObject;   var   Action:   TCloseAction);  
  begin  
    action   :=   cafree;  
    main   :=   nil;  
  end;  
   
  procedure   TMain.FormCloseQuery(Sender:   TObject;   var   CanClose:   Boolean);  
  begin  
        if   main.Visible   =   false   then  
              exit;  
   
        if   application.MessageBox('你确定要退出系统吗?','系统提示',MB_ICONQUESTION   +   MB_YESNO)   =   ID_NO   then  
              CanClose   :=   false  
        else  
              CanClose   :=   true;  
  end;  
  Top

11 楼sundgy(阳光男生)回复于 2006-07-04 08:43:54 得分 0

换成<Top     swcsoft(对不起,我踩到你尾巴了!)     >问题依旧没解决.还是一样.Top

12 楼ffwin()回复于 2006-07-04 08:45:28 得分 0

懒的回答,我看到了中国程序员的悲哀,中国的悲哀Top

13 楼jaffy(小胖猫^_^笨猫先飞)回复于 2006-07-04 08:54:56 得分 10

肯定是资源释放的问题,比如数据库的连接没有释放,关闭之后又调用了等等.Top

14 楼cncharles(旺仔)回复于 2006-07-04 08:59:12 得分 5

procedure   TMain.FormClose(Sender:   TObject;   var   Action:   TCloseAction);  
  begin  
    action   :=   cafree;  
  end;  
   
   
  procedure   TMain.Destory(Sender:   TObject);  
  begin  
    main   :=   nil;  
  end;  
  Top

15 楼sundgy(阳光男生)回复于 2006-07-04 09:05:00 得分 0

TO:<ffwin()   >别在那里他娘的装腔做势,你还不配说中国人怎么样.Top

16 楼sundgy(阳光男生)回复于 2006-07-04 09:07:04 得分 0

to:cncharles(旺仔)   问题依旧Top

17 楼sundgy(阳光男生)回复于 2006-07-04 09:09:44 得分 0

我就整不明白,为什么连接前天的数据库没问题,今天的就出现这种错误提示.照理说如果是程序释放内存或DLL出现了问题那应该连接前天的数据库也会出现这种错误提示啊.为什么换成新的就不行了.Top

18 楼cncharles(旺仔)回复于 2006-07-04 09:24:54 得分 0

你有没有用DLLTop

19 楼sundgy(阳光男生)回复于 2006-07-04 09:42:30 得分 0

没有,我是用ADO动态链接Top

20 楼wudi_1982(向伴水学习|胃出血,住院中)回复于 2006-07-04 09:54:02 得分 0

你从数据库都读了什么数据啊。。不会读写了什么“FUCK   DELPHI"之类的吧。Top

21 楼sundgy(阳光男生)回复于 2006-07-04 10:53:36 得分 0

呵.....当然不会Top

22 楼sundgy(阳光男生)回复于 2006-07-04 11:30:34 得分 0

程序指向:                         Result   :=   CallWindowProc(FPrevWndProc,   FControl.Handle,   Msg,  
                              WParam,   LParam)有异常请问是什么意思?Top

23 楼Cassava(车超)回复于 2006-07-04 11:51:43 得分 5

一般碰到这种问题我都是用代码排除法,也就是一段段代码去掉,直到没有出现错误为止,用这种办法很快就能找到错误的原因了Top

24 楼fcshen()回复于 2006-07-04 14:00:08 得分 0

肯定不是退出的代码造成的.一般是内存地址错误Top

25 楼sundgy(阳光男生)回复于 2006-07-04 15:38:10 得分 0

唉,只能靠自己了Top

相关问题

关键词

得分解答快速导航

  • 帖主:sundgy
  • fenger8293
  • zaza_bbface
  • wlxc
  • grjs2004
  • swcsoft
  • wudi_1982
  • Rubi
  • dinglinger
  • jaffy
  • cncharles
  • Cassava

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

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