- Регистрация
- 1 Мар 2015
- Сообщения
- 1,481
- Баллы
- 155
Работаю с MySQL InnoDB, там транзакции, коммиты и откаты идут автоматом, но товарищ мой сказал «хочу сам управлять этим». И вот что получилось, море кода, но да, управление есть…
На примере вставки записи в новую таблицу
На примере вставки записи в новую таблицу
Код:
if not InputQuery('Название шкалы','',scaleName) then exit;
myOwner:=(Self.Owner.Owner as TTestsMF);
//add scale here
with qSelectScalesWhereTestID do begin
Connection:=myOwner.FDConnection_ExternalConnect;
try
Params.ParamValues['tests_id']:=FTestID;
CachedUpdates:=true;
Open();
trWrite.StartTransaction();
Insert();
FieldByName('name').AsString:=scaleName;
//Post();
if ApplyUpdates<>0 then raise Exception.Create(RowError.Message);
trWrite.Commit();
scaleID_local:=myOwner.CommonMethods.getLastInsertID();
except
on E:Exception do begin
if trWrite.Active then trWrite.Rollback;
Cancel;
CancelUpdates;
Application.ShowException(E);
end;
end;
end;