Ir para conteúdo
Fórum Script Brasil
  • 0

rollback em clientdataset é possivel?


MICHELI_MARTINS

Pergunta

Boa tarde. Vou tentar explicar a situação.

Neste codigo trabalho com um clientdataset temporario para armazenar

os numeros de serie. Supondo que a ordem de entrada fosse um numero de serie que não existe, e sem seguida um que já existe, a operaçao teria que ser desfeita pelo seguinte motivo: sem esvaziar o dataset, o usuario vai e digita outro numero, so que ai começa a duplicar, pelo fato do primeiro existente já estar gravado. Precisaria dar um rollback mas não sei como fazer...

Onde estao os abort, é onde preciso fazer os rollback.

procedure TOB060.BitBtn1Click(Sender: TObject);

begin

pr006.ce024b.first;

cgrid.first;

while not pr006.ce024b.eof do

begin

if ((pr006.ce024bseqfab.Value = '') and (pr006.ce024bnumfab.value = 1)) then

begin

with arq925 do

begin

Close;

parambyname('wcodobr').value := wcodemp;

parambyname('wnumfab').value := cgridseqfab.value;

parambyname('wcodcon').value := pr006.ce024bcodpro.Value;

open;

if arq925.isempty then

begin

ShowMessage('Numeração Fábrica não Cadastrado.');

abort;

end;

if (arq925retira.value = 'S') and (arq925finali.value=1) and (pr006.ce024alocori.value <> 999) then

begin

showmessage('Este medidor foi retirado de obra com destino ao laboratorio.');

abort;

end;

if (arq925retira.value = 'S') and (arq925finali.value<>1) and (pr006.ce024alocori.value = 999) then

begin

showmessage('Este medidor foi retirado de obra com destino ao estoque.');

abort;

end;

if arq925status.value <> '' then

begin

arq906.close;

arq906.parambyname('wcodcli').value := arq000codcli.value;

arq906.parambyname('wcodcon').value := arq925codcon.value;

if copy(arq000tipser.value,1,3)='STC' then

begin

arq906.parambyname('wusomat1').value := 0;

arq906.parambyname('wusomat2').value := 2;

end;

if copy(arq000tipser.value,1,3)='CCM' then

begin

arq906.parambyname('wusomat1').value := 0;

arq906.parambyname('wusomat2').value := 1;

end;

if copy(arq000tipser.value,1,3)='SIP' then

begin

arq906.parambyname('wusomat1').value := 0;

arq906.parambyname('wusomat2').value := 3;

end;

arq906.open;

if arq925status.value = 'D' then

showmessage('Item não disponivel. já foi devolvido.')

else

ShowMessage('Item já incluso e não esta disponivel');

abort;

end;

end;

pr006.ce024b.edit;

pr006.ce024bseqfab.value:= cgridseqfab.value;

pr006.ce024b.post;

cgrid.next;

end;

pr006.ce024b.next;

end;

ob060.close;

end;

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...