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]
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
Curtir tópico
+ 0
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+
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
Clique aqui para fazer login e interagir na Comunidade :)