关于ADOQuery更新两个表时,能否同时更新或同时回滚??
我以前都是如下用:
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("update 表1 ...");
ADOQuery1->ExecSQL();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("update 表2 ...");
ADOQuery1->ExecSQL();
我现在需要更新这两个表时,同时更新或同时回滚。
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("update 表1 ...");
ADOQuery1->SQL->Add("update 表2 ...");
ADOQuery1->ExecSQL();
这样是否能够达到需要呢??
谢谢各位!!
[解决办法]
用事务。
ADOConnection1->BeginTrans();
try
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("update 表1 ...");
ADOQuery1->SQL->Add("update 表2 ...");
ADOQuery1->ExecSQL();
ADOConnection1->CommitTrans();
}
catch(...)
{
ADOConnection1->RollbackTrans();
}