Fórum Duvidas sobre COMMIT no INTERBASE #45117

24/06/2004

0

Antes de gravar uma tabela, por exemplo TaCliente, faço o seguinte:

TaCliente.prepare;
TaCliente.post;

[b:0b7c560c32]-- COMMIT --[/b:0b7c560c32]

Ou seja, dou um commit logo após a gravação.. A dúvida é o seguinte,
quando quero cancelar uma inclusão ou alteração antes da gravação
dou um Tacliente.cancel.. E agora é necessário realizar o [b:0b7c560c32]commit[/b:0b7c560c32]?

Ou seja, se eu não dou um commit depois de um cancelamento.. E depois faço uma inclusão e gravação, ai dou o commit... Então o cancelamento será registrado no banco de dados..

Qual a melhor maneira de trabalhar com os commits.


[b:0b7c560c32]A função que uso para o Commit é a seguinte[/b:0b7c560c32]

Procedure TDM.Commit( DataSet: TDataSet );
Begin
With IBSistcom, IBTransacao Do
Begin
Try
ApplyUpdates( DataSet );
CommitRetaining;
Except
ShowMessage( ´Transação não efetuada, será revertida, favor tentar novamente.´ );
RollbackRetaining;
Raise;
End;
End;
End;

[b:0b7c560c32]Esta correto??[/b:0b7c560c32]


Sistemp

Sistemp

Responder

Posts

24/06/2004

Gandalf.nho

Se você quiser cancelar a alteração/inclusão, basta dar Rollback, que desfaz qualquer alteração causada durante a transação aberta (inclusive exclusões)


Responder

Gostei + 0

24/06/2004

Afarias

|E agora é necessário realizar o [b:f2d2b45e12]commit[/b:f2d2b45e12]?

pode realizar o commit ou não


|Ou seja, se eu não dou um commit depois de um cancelamento.. E
|depois faço uma inclusão e gravação, ai dou o commit... Então o
|cancelamento será registrado no banco de dados..

NÃO


|Qual a melhor maneira de trabalhar com os commits.

o q foi cancelado não vai para o banco, sendo assim, o COMMIT não tem qualquer efeito... é como se nunca tivesse existido.


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar