在进行完update程序就关闭了.数据已经更新,以下是源码
procedure TForm1.Button2Click(Sender: TObject);
var get_date,csid:string;
l_avail,l_lqconsum,l_wfconsum,l_yfconsum,l_savail,l_sumavail:single;
year:integer;
bl:single;
querybox1:TQuery;
begin
if (edit1.text='') or (strtofloat(edit1.text)<30000) then
begin
showmessage('返还累计金额不能小于30000');
end;
if edit1.text='' then
begin
showmessage('请输入返还金额');
end
else
begin
querybox1:=TQuery.Create(nil);
with querybox1 do
get_date:=datetostr(date);
l_avail:=strtofloat(edit5.text);
l_lqconsum:=strtofloat(edit1.text);
csid:=edit3.Text;
bl :=strtofloat(edit2.text);
end;
if csid='' then
begin
showmessage('请选择会员')
end
else
begin
close;
querybox1.DatabaseName:='ww';
querybox1.SQL.clear;
querybox1.SQL.Add('update cs_zzk set j_wfconsum=j_wfconsum-:l_lqconsum ,j_yfconsum=j_yfconsum+:l_lqconsum,f_avail=:l_avail,f_consum=f_consum+:l_avail');
querybox1.SQL.Add('where cs_id=:csid');
querybox1.params[0].asfloat:=l_lqconsum;
querybox1.params[1].asfloat:=l_lqconsum;
querybox1.params[2].asfloat:=l_avail;
querybox1.params[3].asfloat:=l_avail;
querybox1.params[4].asstring:=csid;
try
querybox1.ExecSQL;
except
close;
Free;
queryBox1 := nil;
exit;
end;
procedure TForm1.Button2Click(Sender: TObject);
var get_date,csid:string;
l_avail,l_lqconsum,l_wfconsum,l_yfconsum,l_savail,l_sumavail:single;
year:integer;
bl:single;
querybox1:TQuery;
begin
if (edit1.text='') or (strtofloat(edit1.text)<30000) then
begin
showmessage('返还累计金额不能小于30000');
end;
if edit1.text='' then
begin
showmessage('请输入返还金额');
end
else
begin
querybox1:=TQuery.Create(nil);
with querybox1 do
get_date:=datetostr(date);
l_avail:=strtofloat(edit5.text);
l_lqconsum:=strtofloat(edit1.text);
csid:=edit3.Text;
bl :=strtofloat(edit2.text);
end;
if csid='' then
begin
showmessage('请选择会员')
end
else
begin
close;
querybox1.DatabaseName:='ww';
querybox1.SQL.clear;
querybox1.SQL.Add('update cs_zzk set j_wfconsum=j_wfconsum-:l_lqconsum ,j_yfconsum=j_yfconsum+:l_lqconsum,f_avail=:l_avail,f_consum=f_consum+:l_avail');
querybox1.SQL.Add('where cs_id=:csid');
querybox1.params[0].asfloat:=l_lqconsum;
querybox1.params[1].asfloat:=l_lqconsum;
querybox1.params[2].asfloat:=l_avail;
querybox1.params[3].asfloat:=l_avail;
querybox1.params[4].asstring:=csid;
try
querybox1.ExecSQL;
except
close;
Free;
queryBox1 := nil;
exit;
end;
解决方案 »
- 如何创建一个管理类的链表?
- DBGrid修改某一行数据和刷新的问题
- dbgrid中怎样选择多条记录进行删除,请高手赐教
- 如何调出一个指定路径的目录窗口(系统的,如我的电脑,资源浏览器等)。
- 各位大侠,Delphi应付一个有二十万记录的数据库怎么样,可能还有图像字段?
- 主从表的DBGrid
- Listbox的问题
- 如何用delphi设置任务栏的高度?
- 紧张之余,给大伙轻松轻松(暴笑)
- 请高手详细讲解一下select into,sqlserver中帮助我已经看过了,但是还是不了解!急!
- 可能是传奇客户端程序或是某一个更新的程序,已经搞定源码(汇编,DELPHI),想知道怎么搞的进来!
- 请问c语言中“return ((((bits) + 31)>>5)<<2); ”是什么意思?
querybox1.ExecSQL;
except
showmessage('更新失败')
end;
queryBox1.close;
queryBox1.Free;
queryBox1 := nil;
exit;
end;
并且单步跟踪,检查错误
..............
querybox1.params[3].asfloat:=l_avail;
querybox1.params[4].asstring:=csid;
try
querybox1.ExecSQL;
except
close; //-----这里实际执行form1.close;
Free; //-----这里实际执行form1.free;
queryBox1 := nil;
exit;
.............
querybox1.ExecSQL;
except
close;//这里
Free;//这里
...
close;
free;
...
try
querybox1.ExecSQL;
except
close;//此句将关闭窗体
Free;//此句将释放窗体
queryBox1 := nil;
exit;
end;
改为:
try
querybox1.ExecSQL;
except
querybox1.close;
querybox1.Free;
queryBox1 := nil;
exit;
end;祝你好运!