我使用以下内容:
begin
dbmodule.comenziQuery.SQL.Clear;
dbmodule.comenziQuery.SQL.Add('INSERT INTO `r33758pi_tipotask`.`arhiva` SELECT id, data, stare, client, telefon, email, detalii, observatii, pret, livrare, user, status FROM comenzi WHERE `id`='''+inttostr(dbmodule.comenziDataSetid.Value)+''';');
dbmodule.comenziQuery.ExecSQL(true);
dbmodule.comenziQuery.SQL.Clear;
dbmodule.comenziQuery.SQL.Add('DELETE FROM `r33758pi_tipotask`.`comenzi` WHERE `id`='''+inttostr(dbmodule.comenziDataSetid.Value)+''';');
dbmodule.comenziQuery.ExecSQL(true);
end;
任何人都可以指导我如何在交易中包装它吗? 我之前从未使用过,而且我很难理解如何修改代码来添加它。
我试图将其添加到transaction
中,因为我已经阅读过它是一种很好的做法,因为如果1失败则根本无法执行。
我已尝试按照本指南Some Guide进行操作,然后使用那里提到的begin transaction
和begin try
,但我猜不是没有意图对于德尔福代码,或者其他什么......没有运气。
希望代码没问题,请随时指出我到目前为止可能做的任何错误。
Delphi,使用Rad Studio 10 Seattle,TSQLQuery
- 服务器是mysql
- 如果我遗漏了任何内容,我会在评论中告诉我。我会编辑。
答案 0 :(得分:0)
事务通常在SQL Server存储过程中使用,其中您在BEGIN TRANSACTION和COMMIT TRANSACTION或ROLLBACK TRANSACTION语句之间有一个sql语句块。
不确定它是否与MySQL相同。
事务通常在sql server上处理,而不是从代码处理。