Управление транзакциями
dbMain.
Start-Transaction;
try/
═════spAddOrder.ParamsByName('ORDER_NO').AsInteger :=
OrderNo;
═════{ Выполняем все присвоения
Parameter, а затем хранимую процедуру,
чтобы добавить новый заказ к
таблице ORDER }
═════spAddOrder.ExecProc;
═════{Итерация
по всем частям и обновление таблицы
INVENTORY.}
═════for i := 0 to PartList.Count - 1 do
═════begin
══════════spReduceParts.ParamByName('PART_NO').AsInteger
:= PartRec(PartList.Objects[i]).PartNo;
══════════spReduceParts.ParamByName('NUM_SOLD').AsInteger
:= PartRec(PartList.Objects[i]).NumSold;
══════════spReduceParts.ExecProc;
═════end;
═════// Внесение изменений в
таблицы ORDER в INVENTORY.
═════dbMain.Commit;
except
═════// При появлении ошибки
отменить все изменения. dbMain.RollBack;
═════raise;
end;
|