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

sundgy 2006-07-03 01:39:00
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.

我怀疑是数据库有问题,因为如果我换上以前的数据库不会出现这种情况,昨天我导了一些数据进去就出现种错误提示,数据库连接我采用的是动态数据库连接,这应该不是情况所在,因为如我之前所述,程序没办,只是在导入一些数据进去就出现这种问题,请问怎么解决?
...全文
247 25 点赞 打赏 收藏 举报
写回复
25 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Cassava 2006-07-04
一般碰到这种问题我都是用代码排除法,也就是一段段代码去掉,直到没有出现错误为止,用这种办法很快就能找到错误的原因了
  • 打赏
  • 举报
回复
sundgy 2006-07-04
程序指向: Result := CallWindowProc(FPrevWndProc, FControl.Handle, Msg,
WParam, LParam)有异常请问是什么意思?
  • 打赏
  • 举报
回复
sundgy 2006-07-04
呵.....当然不会
  • 打赏
  • 举报
回复
wudi_1982 2006-07-04
你从数据库都读了什么数据啊。。不会读写了什么“FUCK DELPHI"之类的吧。
  • 打赏
  • 举报
回复
sundgy 2006-07-04
没有,我是用ADO动态链接
  • 打赏
  • 举报
回复
cncharles 2006-07-04
你有没有用DLL
  • 打赏
  • 举报
回复
sundgy 2006-07-04
我就整不明白,为什么连接前天的数据库没问题,今天的就出现这种错误提示.照理说如果是程序释放内存或DLL出现了问题那应该连接前天的数据库也会出现这种错误提示啊.为什么换成新的就不行了.
  • 打赏
  • 举报
回复
sundgy 2006-07-04
to:cncharles(旺仔) 问题依旧
  • 打赏
  • 举报
回复
sundgy 2006-07-04
TO:<ffwin() >别在那里他娘的装腔做势,你还不配说中国人怎么样.
  • 打赏
  • 举报
回复
cncharles 2006-07-04
procedure TMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action := cafree;
end;


procedure TMain.Destory(Sender: TObject);
begin
main := nil;
end;
  • 打赏
  • 举报
回复
jaffy 2006-07-04
肯定是资源释放的问题,比如数据库的连接没有释放,关闭之后又调用了等等.
  • 打赏
  • 举报
回复
ffwin 2006-07-04
懒的回答,我看到了中国程序员的悲哀,中国的悲哀
  • 打赏
  • 举报
回复
sundgy 2006-07-04
换成<Top swcsoft(对不起,我踩到你尾巴了!) >问题依旧没解决.还是一样.
  • 打赏
  • 举报
回复
sundgy 2006-07-04
完整退出主程序如下代码:
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;
  • 打赏
  • 举报
回复
sundgy 2006-07-04
关键是如果我换用我以前的数据库,退出程序是不会出什么问题的哟.我的主程序退出代码如下:
action := cafree;
main := nil;
  • 打赏
  • 举报
回复
sundgy 2006-07-04
唉,只能靠自己了
  • 打赏
  • 举报
回复
fcshen 2006-07-04
肯定不是退出的代码造成的.一般是内存地址错误
  • 打赏
  • 举报
回复
小呆之家 2006-07-03
,数据库连接我采用的是动态数据库连接,
//---估计是你在DLL中退出释放内存地址出错或是在DLL中释放内存后,主程序再次操作不存在的资源造成的内存地址访问错.
你好好查查是不是DLL的APPLICATION与主程序中APPLICATION的控制句柄的转让的问题.
  • 打赏
  • 举报
回复
Rubi 2006-07-03
2: Action:=caNone;

Action:=caFree;看看
  • 打赏
  • 举报
回复
wudi_1982 2006-07-03
把代码贴出来看看。。这种问题不好说。。一般是资源释放得问题。。自己好好研究研究代码。估计只有你自己解决了。
  • 打赏
  • 举报
回复
加载更多回复
相关推荐
发帖
数据库相关
创建于2007-08-02

2456

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2006-07-03 01:39
社区公告
暂无公告