我不确定我是否正确写入。在此查询中事务是否正确执行?
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'子句中的第一个条件相同似乎有点奇怪。这是真实的代码吗? – 2014-09-03 12:40:37
是的,它是真实的,只要我可以告诉 – user3927897 2014-09-03 13:04:30