1. 在前台我执行了一条语句
update tanle1 set 小计=12 后来我发现错了这时怎么回滚到原来状态?
2. 怎么在前台执行多条SQL语句,我原来是这样执行的: Adoquery1.close;
Adoquery1.sql.clear;
Adoquery1.sql.add(第一条SQL)
Adoquery1.open(后Execsql)
Adoquery1.close;
Adoquery1.sql.clear;
Adoquery1.sql.add(第二条SQL)
Adoquery1.open(后Execsql) ... 有没有简洁的方式?
Adoquery1.close;
Adoquery1.sql.Text:='第二条SQL'
Adoquery1.open(后Execsql)
如果想回滚的话,使用事务处理是一种比较好的解决办法;
adoquery1.Connection.BeginTrans //启动事务
adoquery1.Connection.CommitTrans; //执行事务
adoquery1.Connection.RollbackTrans; //回滚事务
begin
Adoquery1.close;
Adoquery1.sql.clear;
Adoquery1.sql.add(mySQL)
Adoquery1.open(后Execsql)
end;
ExecMySQL(第一条SQL);
ExecMySQL(第二条SQL);
ExecMySQL(第三条SQL);
adoquery1.sql.text:='...';就不用clear.
例如:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into trym values(1,2)')
ADOQuery1.SQL.Add('insert into trym values(3,4)')
ADOQuery1.SQL.Add('insert into trym values(5,6)')
ADOQuery1.SQL.Add('insert into trym values(7,8)')
ADOQuery1.ExecSQL
就可以连续向表trym 中插入四条记录