Você está aqui: Delphi ::: dbExpress ::: TSQLConnection |
Como usar o método BeginTransaction() da classe TSQLConnection para iniciar uma nova transação com a base de dados atualQuantidade de visualizações: 6132 vezes |
|
O método BeginTransaction() da classe TSQLConnection é usado quando queremos iniciar uma nova transação com a base de dados à qual estamos conectados no momento. É importante, antes de iniciar uma transação, verificar se o banco de dados suporta transações. Veja em dicas desta mesma seção como isso pode ser feito. Veja a assinatura do método BeginTransaction(): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- function BeginTransaction(): TDBXTransaction; overload; Se a transação for iniciada com sucesso, o método BeginTransaction() atribui o valor True para a propriedade InTransaction da classe TSQLConnection para indicar que uma transação está em curso. A transação ficará ativa até que um dos métodos CommitFreeAndNil(), RollbackFreeAndNil() ou RollbackIncompleteFreeAndNil() seja chamado. ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
procedure TFormPrincipal.Button1Click(Sender: TObject);
var
transacao: TDBXTransaction; // adicione DBXCommon ao uses
id_excluir: Integer; // id do cliente a ser excluído
begin
// define o id do cliente a ser excluído
id_excluir := 4;
// vamos obter a transação
transacao := SQLConnection1.BeginTransaction(TDBXIsolations.ReadCommitted);
try
// vamos disparar o comando SQL
SQLDataSet1.Close;
SQLDataSet1.CommandText := 'DELETE FROM clientes WHERE id = :id';
// ajusta os parâmetros da query
SQLDataSet1.Params[0].Name := 'id';
SQLDataSet1.Params[0].Value := id_excluir;
SQLDataSet1.ExecSQL(False);
// vamos dar um commit na transação
SQLConnection1.CommitFreeAndNil(transacao);
ShowMessage('Cliente excluído com sucesso.');
except
on Exc: Exception do
begin
// houve erro? vamos dar um rollback na transação
SQLConnection1.RollbackFreeAndNil(transacao);
ShowMessage('Houve um erro na transação: ' + Exc.Message);
end;
end;
end;
Observe que a forma anterior de se iniciar transações em Delphi + dbExpress era com chamadas ao método StartTransaction() da classe TSQLConnection. Este método foi marcado como deprecated (desatualizado, obsoleto) e não deve mais ser usado. |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





