大家好,我在做近削存的时候,出库的时候要多次修改数据库.请问可以用一个ADOQuery组件实现吗?//其中涉及到事务处理
try
 adoconnection1.begentrins;
 adoquery1.close;
 adoquery1.sql.close;
 adoquery1.sql.add(.................);//第一条
 try
   adoquery1.excesql;
 except end;
 adoconnection1.begentrins;
 adoquery1.close;
 adoquery1.sql.close;
 adoquery1.sql.add(.................);//第二条
 try
   adoquery1.excesql;
 except end;
   .
   .
   .
 adoconnection1.begentrins;
 adoquery1.close;
 adoquery1.sql.close;
 adoquery1.sql.add(.................);//第n条
 try
   adoquery1.excesql;
  except end;
 adoconnection.committrans;
except 
 application.messagebox('error','system');
end;

解决方案 »

  1.   

    try
     adoconnection1.begentrins;
     adoquery1.close;
     adoquery1.sql.close;
     adoquery1.sql.add(.................);//第一条
     try
       adoquery1.excesql;
     except end; adoquery1.close;
     adoquery1.sql.close;
     adoquery1.sql.add(.................);//第二条
     try
       adoquery1.excesql;
     except end;
       .
       .
       . adoquery1.close;
     adoquery1.sql.close;
     adoquery1.sql.add(.................);//第n条
     try
       adoquery1.excesql;
      except end;
     adoconnection.committrans;
    except 
     application.messagebox('error','system');
    end;
      

  2.   

    可以用一个Query实现!
                  我用过,这里我就不写了哈!其实自己试一下就行了~!
      

  3.   

    一楼正确。
    你的 adoconnection1.begentrins;只能有一个,这样才能达到目的。
      

  4.   

    可以使用数组来保存你的SQL语句,ss是数组,类形是STRING,
    try
     adoconnection1.begentrins;
    for i:=0 to length(ss)-1 do
     begin
     adoquery1.close;
     adoquery1.sql.close;
     adoquery1.sql.add(ss[i]);
     adoquery1.excesql;
     end; 
     adoconnection.committrans;
    except 
     application.messagebox('error','system');
    end;
    这样就可以了,