现在一收费系统 为实现团体买单功能,加一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;