在TQuery中写几条SQL语句是没问题的,但得注意几条语句对数据库的操作的同步。
假如有3个Update语句分别修改3个表,如果在处理中间一个的时候出现了错误,则
第一被修改了,最后一个没被修改,这样数据就会产生不同步的情况。此时,建议
采用事务处理,下面是Delphi的Example:
procedure TForm1.ApplyButtonClick(Sender: TObject);
begin
with CustomerQuerydo
begin
Database1.StartTransaction;
try
ApplyUpdates;
{try to write the updates to the database};
Database1.Commit;
{on success, commit the changes};
except
Database1.Rollback;
{on failure, undo the changes};
raise;
{raise the exception to prevent a call to CommitUpdates!}
end;
CommitUpdates;
{on success, clear the cache}
end;
end;