Fórum Rolblback não funciona #286373
29/06/2005
0
no cancelar esta assim. Desde já agradeçoa a atenção.
if not dtemp.InTransaction then
dtemp.StartTransaction;
dtemp.Rollback;
Rjcerri
Curtir tópico
+ 0Posts
29/06/2005
Marco Salles
if not dtemp.InTransaction then dtemp.Rollback;
Gostei + 0
29/06/2005
Rjcerri
Gostei + 0
29/06/2005
Marlon Spiess
Gostei + 0
29/06/2005
Marlon Spiess
ex.:
table1.cancel;
.
.
.
table15.cancel;
database1.rollback;
table1.refresh;
.
.
.
table15.refresh;
Gostei + 0
29/06/2005
Marlon Spiess
Gostei + 0
29/06/2005
Caninha51
Inicia a transação com dTemp.StartTransaction, trabalha(inclui,edita,exclui) com seus datasets.
Para salvar as alterações vc usa o Commit.
Para cancelar tudo vc usa o Rollback.
Para sabe se já está em uma transação vc usa o InTransaction.
Falow
Caninha51
Gostei + 0
29/06/2005
Marco Salles
[b:6e571aebbc]epaaaaaaaaaaaaa[/b:6e571aebbc]
Acho que alem das dicas dos nossos amigos voce deve procura a causa.. Ta muito estranho :cry:
então vamos por parte...
1) coloque o comando assim
if not dtemp.InTransaction then begin showmessage(´Transação cancelada´); dtemp.Rollback; end else Showmessage(´Transação não cancelada´); end;
[b:6e571aebbc]Rode o programa normalmente e dê um click no bo5tão cancelar e nos diga qual a mensagem que foi processada..A de transação cancelada ou a de Transação não cancelada[/b:6e571aebbc]
Gostei + 0
29/06/2005
Rjcerri
Gostei + 0
29/06/2005
Marco Salles
Ora então significa que a transação ja foi cancelda ou mesmo não foi nen sequer Inicializada pois dtemp.InTransaction esta sendo False....
Porque voce so pode cancelar uma transação quando dtemp.InTransaction for True...
Voce esta inicializando a Transação em algum Lugar :?: :?: :?: :?:
Gostei + 0
30/06/2005
Rjcerri
procedure Tfrmordemfab.btIncluirClick(Sender: TObject);
begin
if not dtemp.InTransaction then
dtemp.StartTransaction;
e depois no onexit aqui eu usei try
try
if not dtemp.InTransaction then
dtemp.StartTransaction;
except
dtemp.Rollback;
tbtempof.Cancel;
Application.MessageBox(´A tabela tempof não pode ser atualizada, tente novamente´,
´Mensagem tempof(4317)´,mb_Ok + mb_IconInformation);
btcancelar.OnClick(sender);
end;
e no botao cancelar esta assim agora
if not dtemp.InTransaction then
begin
showmessage(´Transação cancelada´);
dtemp.Rollback;
end
else
Showmessage(´Transação não cancelada´);
Gostei + 0
30/06/2005
Arc
Alguem pode me explicar qual a finalidade deste Rollback ????? Na linha onde está ????
Gostei + 0
30/06/2005
Arc
Se o If ja ta falando que não tem Transação, o Rollback, pra mim, ta no lugar errado ......
Gostei + 0
30/06/2005
Caninha51
Gostei + 0
01/07/2005
Marco Salles
É parece mais simples do que se imaginava...
Tire o not da instrução amigo [b:dc2ae2c070]rjcerri[/b:dc2ae2c070]
if dtemp.InTransaction then dtemp.Rollback;
Aqui significa que , somente se estiver alguma transação , esta será cancelada...
Gostei + 0
04/07/2005
Rjcerri
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)