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.我怀疑是数据库有问题,因为如果我换上以前的数据库不会出现这种情况,昨天我导了一些数据进去就出现种错误提示,数据库连接我采用的是动态数据库连接,这应该不是情况所在,因为如我之前所述,程序没办,只是在导入一些数据进去就出现这种问题,请问怎么解决?

解决方案 »

  1.   

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

  2.   

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

  3.   

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

  4.   

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

  5.   

    完整退出主程序如下代码:
    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;
      

  6.   

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

  7.   

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

  8.   

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

  9.   

    to:cncharles(旺仔) 问题依旧
      

  10.   

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

  11.   

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

  12.   

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