我正在使用以下内容:
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
中,因为我已经读到了这是一个好的实践方法,因为如果其中一个失败,它就不会执行。
我尝试遵循这篇指南Some Guide,并随后使用其中提到的begin transaction
和begin try
,但我猜想那不是针对delphi代码的,或者什么原因导致没有成功。
希望代码没问题,请随时指出我可能犯的任何错误。
Delphi,使用Rad Studio 10 Seattle,TSQLQuery
- 服务器是mysql
- 如果我漏掉了任何内容,请在评论中告知我,我会进行编辑。
If SQLConnection1.TransactionsSupported Then
。 - Ilyes