****紧急求救,关于事务的简单问题(二层的)****

                            
小弟定义了一方法,想从edit1.text,edit2.text,edit3.text值入参数值.却出现"...列值无效"的错误。要是先给ADOQuery写入sql语句再在程序中赋值的方法,则也报错,说找不到参数等。程序如下,请各位帮忙看看,小弟弄了好久,着实弄不出来啊。   
  procedure   cat(name1,name2,money:String);  
      var  
          str:String;  
  begin  
  str:='update   xsm2   set   money=money-'+money+'   where   name=   '+name1+'   ';  
  str:=str+'   update   xsm2   set   money=money+'+money+'   where   name=   '+name2+'';  
      showmessage(str);  
      with   form1.ADOconnection1   do  
          begin  
              try  
                  begintrans;  
                          with   form1.ADOQuery2   do  
                              begin  
                                close;  
                                sql.clear;  
                                sql.add(str);  
                                prepared:=true;  
                                execsql;  
                                showmessage('事务执行成功!');  
                                committrans;  
                              end;  
            except  
                      showmessage('事务执行失败!');  
                      rollbacktrans;  
                  end;  
              end;  
  end;

查看回复