存储过程运行后为什么不能用close关闭form?

sandian 2006-05-26 09:39:47
存储过程已经正常调用了,但我在运行后试着加addform.close;就关不掉,出现错误提示:
project project.exe raised exception class EAccessViolation with message 'Access violation at address 00450A5B in module 'project1.exe'.Read of address 00DE4320'.process stopped.Use step or Run to continue.

addform是添加页的form名.如果不运行存储过程,是可以关掉的,由于是动态加载的,所以在onclose事件中释放资源:
procedure TaddForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
addform.Free;
addform:=nil;
end;

bitbtn2的点击是将form关闭的事件
procedure TaddForm.BitBtn2Click(Sender: TObject);
begin
addform.Close;
end;

调用存储过程的代码如下:
u2_datamodule.DataModulesys.addSP.Close;
u2_datamodule.DataModulesys.addSP.ProcedureName:='dbo.st_addproduct1;1';
u2_datamodule.DataModulesys.addSP.Parameters.CreateParameter('@pro_code',ftstring,pdinput,50,'');
u2_datamodule.DataModulesys.addSP.Parameters.ParamByName('@pro_code').Value:=edit1.Text;
u2_datamodule.DataModulesys.addSP.Prepared;
u2_datamodule.DataModulesys.addSP.ExecProc;
u2_datamodule.DataModulesys.addSP.Parameters.Clear;

不调用存储过程的话,可以用close;将其关闭.
在调用存储过程后是也正常的,可以用form右上角的"X"关闭该form,但是就是不能用close;关闭,一用就出错.

我觉得是调用存储过程的代码有问题,但又看不出问题所在,谢谢大家,帮我看下!
...全文
192 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sandian 2006-05-26
  • 打赏
  • 举报
回复
恩,可以了
我还以为
addform.Free;
addform:=nil;
这样也可以呢,谢谢大家了
KL2 2006-05-26
  • 打赏
  • 举报
回复
procedure TaddForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

procedure TaddForm.FormDestory(Sender: TObject);
begin
addForm:=nil;
end;
dxbjeremy 2006-05-26
  • 打赏
  • 举报
回复
u2_datamodule.DataModulesys.addSP.Prepared;
u2_datamodule.DataModulesys.addSP.Parameters.Clear;
都不需要
cncharles 2006-05-26
  • 打赏
  • 举报
回复
procedure TaddForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
addform.Free;
addform:=nil;
end;

不能这样的写的大哥.
procedure TaddForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

procedure TaddForm.FormDestory(Sender: TObject);
begin
addForm:=nil;
end;

GARNETT2183 2006-05-26
  • 打赏
  • 举报
回复
formclose事件里不要写那二行代码...

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧