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: 5891 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(): ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- 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. ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- 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 |