存储过程已经正常调用了,但我在运行后试着加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;关闭,一用就出错.我觉得是调用存储过程的代码有问题,但又看不出问题所在,谢谢大家,帮我看下!
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;关闭,一用就出错.我觉得是调用存储过程的代码有问题,但又看不出问题所在,谢谢大家,帮我看下!
解决方案 »
- 对境像共享内存了解的进来。
- 想用D7写一个程序,客户端如何自动找寻到LAN里面的SQL SERVER ?
- 用Delphi怎样获取Excel文件里的某个工作簿中指定列的标题————Excel中工作区上面第一行(既:A、B、C、D、……IU、IV))???
- 急啊!怎么从定义好的子界类型变量里取它的第n个值
- delphi最新版本是多少>?哪里可以下载?
- 如何使内存中的值锁定
- DelPhi 如果连接MS-SQL和ACCESS数据库??(急)
- !!!兄弟们帮帮忙啊,我想做一个像Delphi一样的窗体设计器,能在运行时设计窗体。一定送分送钱 ^_^(在线等待)。!!!
- 请问英语四级的成人考试报名截止到什么时候(西安)
- 怎么创建包????
- 招兼职程序员
- 如何限制同一台机器只允许运行一个相同应用程序??
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;
u2_datamodule.DataModulesys.addSP.Parameters.Clear;
都不需要
begin
Action:=caFree;
end;procedure TaddForm.FormDestory(Sender: TObject);
begin
addForm:=nil;
end;
我还以为
addform.Free;
addform:=nil;
这样也可以呢,谢谢大家了