try
      fqdm.ADOCOM.BeginTrans;
      with liquery do
         begin
            close;
            sql.clear;
            sql.add('select * from test1');
            sql.add('where id=1');
            open;
            edit;
            fieldbyname('a').asinteger := fieldbyname('a').asinteger - strtoint(nm.Text);
            post;
         end;//***************************
         with tmpquery do
         begin
         close;
         sql.clear;
         sql.add('select * from test2');
         sql.add('where id=2');
         open;
         edit;
         fieldbyname('b').asinteger:=fieldbyname('b').asinteger+10;
         post;
         end;
//**************
//如果以上面*号引出来的语句用下面的语句表示,则第一个QUERY,LIQUERY不能保存数据,只有用了上面的语句两个库才能保存。test1,2为两旧不同的视图,修改的都是单一的表数据。
             {     with Tmpquery do
                     begin
                        close;
                        sql.clear;
                        sql.add('update test2');
                        sql.add('set b=b+10');
                        sql.add('where id=2');
                        execsql;
                     end;  }                     fqdm.adocom.CommitTrans;
   except
   fqdm.ADOCOM.RollbackTrans;
   showmessage('error');
   end;