现在一收费系统 为实现团体买单功能,加一listbox,买单时号在listbox中即update收费表中的收银员,打发票。现在的问题是:打了两百张左右的单,有两张有问题,打印内容都完整,但一张是前三人的收银员没update,一张是三人全都没upddate,代码如下,请高手指出问题: flogin.db1.StartTransaction;
for i:=0 to listBox1.Items.Count-1 do
with q2 do
begin //1
// flogin.db1.StartTransaction; //1
close;
sql.clear;
sql.Add('update w_dxsf set qrrgh=:wqrr,qrrxm=:wqrrxm, qrsj=:wqrsj where sph=:wsph and ');
sql.Add(' (qrrgh is null or qrrgh="") ');
parambyname('wqrr').AsString :=bjczygh;
parambyname('wqrrxm').AsString :=bjczyxm;
parambyname('wqrsj').AsDateTime :=fmain.GetServerDateTime();
parambyname('wsph').AsString :=listbox1.Items.Strings[i];
// try
prepare;
execsql;
// flogin.db1.Commit ;
// except
// flogin.db1.Rollback;
// application.MessageBox('保存出现错误,请修改正确后继续操作!','错误提示',mb_ok+mb_iconwarning);
// end;
end; //1
try
flogin.db1.Commit ;
qall_reset;
Fprintdj:=TFprintdj.Create(application);
Fprintdj.QRsyy.Caption:=bjczygh;
Fprintdj.qr1.print ;
qall_reset;
listBox1.Clear ; except
flogin.db1.Rollback;
application.MessageBox('保存出现错误,请修改正确后继续操作!','错误提示',mb_ok+mb_iconwarning);
end;
for i:=0 to listBox1.Items.Count-1 do
with q2 do
begin //1
// flogin.db1.StartTransaction; //1
close;
sql.clear;
sql.Add('update w_dxsf set qrrgh=:wqrr,qrrxm=:wqrrxm, qrsj=:wqrsj where sph=:wsph and ');
sql.Add(' (qrrgh is null or qrrgh="") ');
parambyname('wqrr').AsString :=bjczygh;
parambyname('wqrrxm').AsString :=bjczyxm;
parambyname('wqrsj').AsDateTime :=fmain.GetServerDateTime();
parambyname('wsph').AsString :=listbox1.Items.Strings[i];
// try
prepare;
execsql;
// flogin.db1.Commit ;
// except
// flogin.db1.Rollback;
// application.MessageBox('保存出现错误,请修改正确后继续操作!','错误提示',mb_ok+mb_iconwarning);
// end;
end; //1
try
flogin.db1.Commit ;
qall_reset;
Fprintdj:=TFprintdj.Create(application);
Fprintdj.QRsyy.Caption:=bjczygh;
Fprintdj.qr1.print ;
qall_reset;
listBox1.Clear ; except
flogin.db1.Rollback;
application.MessageBox('保存出现错误,请修改正确后继续操作!','错误提示',mb_ok+mb_iconwarning);
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货