Я не уверен, написал ли я это правильно.Действительно ли транзакция выполнена правильно в этом запросе?
procedure TMainForm.AdvGlowButton1Click(Sender: TObject);
begin
DataModule2.INS_Query.Close;
DataModule2.INS_Query.SQL.Clear;
DataModule2.FDTransaction1.StartTransaction;
try
if cxlookupcombobox1.Text ='' then begin
....
....
DataModule2.INS_Query.ExecSQL;
DataModule2.FDTransaction1.Commit;
end else begin
if cxlookupcombobox1.Text <>'' then
......
......
DataModule2.INS_Query.ExecSQL;
DataModule2.FDTransaction1.Commit;
end;
except
on e: exception do begin
Showmessage(format('Error occured. Error is: %s',[e.message]));
DataModule2.FDTransaction1.Rollback;
DataModule2.MYTABLE.Cancel;
end;
end;
Выполняет все правильно, но что-то меня злит.
DataModule2.FDTransaction1.Commit;
Должно ли быть совершено дважды? Или я правильно написал этот запрос?
В коде, который вы показываете, вы можете выполнить только один 'DataModule2.FDTransaction1.Commit'. Либо внутри основного предложения 'if', либо внутри предложения' else'. Во всяком случае, кажется немного странным, что первое условие в предложении 'else' такое же, как в главном предложении' if'. Это настоящий код? –
Да, это реально и выполняется нормально, насколько я могу судить – user3927897