oracle数据库,
我想在一个ADOQUERY里更新两个表的记录,免得用事务来处理这个问题,不知道如何才可以写多条SQL语句?

解决方案 »

  1.   

    with DataModule1.ADOQuery1 do begin
      SQL.Close;
      SQL.Clear;
      SQL.Add('Update yourTable1 ');              //SQL文
      SQL.Add(' Set field1=:var1,field2=:var2 ');
      SQL.Add('Where field3=:var3 ');
      Parameters.ParamByName('var1').Value := 値;//参数付値
      Parameters.ParamByName('var2').Value := 値;
      Parameters.ParamByName('var3').Value := 値;
      ExecSQL;                                   //執行1  SQL.Close;
      SQL.Clear;
      SQL.Add('Update yourTable2 ');              //SQL文
      SQL.Add(' Set field1=:var1,field2=:var2 ');
      SQL.Add('Where field3=:var3 ');
      Parameters.ParamByName('var1').Value := 値;//参数付値
      Parameters.ParamByName('var2').Value := 値;
      Parameters.ParamByName('var3').Value := 値;
      ExecSQL;                                   //執行2
      
      {...}
    end;
      

  2.   

    With ADOQuery do
    begin
      Close;
      Sql.Clear;
      Sql.Add('update table set field='aaa');
      Sql.Add('delete table2 where field1='nnn');
      ExecSql;
    end;
    这样也是需要事物的
      

  3.   

    cronuz(cronus)说的没有事务,更新多表会产生数据不一致的情况吧?会更新第一表成功,后一表失败的情况。
    rockswj(石头,继续学习) 说sql合在一起也要事务?那我就只有用adoconnect的事务了。