GARANTIR DESCONTO

Fórum DataSet Provider #268813

16/02/2005

0

Amigos,
Estou usando um procedimento para criar um log da minha aplicação no evento Before Update Record do componente DataSetProvider. Estou usando o seguinte código:
  Campo := DeltaDS.FieldCount;
  For i := 0 To DeltaDS.FieldCount -1 Do
    Begin
      If(not VarIsClear(DeltaDS.Fields[i].NewValue)) then
        Begin
          CdsLog.Open;
          CdsLog.Insert;
          CdsLoglog_usuCodigo.Value  := 1;
          CdsLoglogData.AsDateTime   := Now;
          CdsLoglogTabela.AsString   := ´Cedentes´;
          CdsLoglogCampo.AsString    := DeltaDS.Fields[i].FieldName;
          CdsLoglogValorAntigo.Value := DeltaDS.Fields[i].OldValue;
          CdsLoglogValorAtual.Value  := DeltaDS.Fields[i].NewValue;
          CdsLoglogAcao.Value        := Acao;

            Case UpdateKind of
              ukModify: Acao := ´Alteração´;
              ukInsert: Acao := ´Inserção´;
              ukDelete: Acao := ´Exclusão´;
            End;

          CdsLoglogChave.Value := CdsCedentescdtCod_Contrato.Value;
          CdsLog.Post;
          CdsLog.ApplyUpdates(-1);
      End;

    end;


Quando tento dar um applayupdate(-1) nada é salvo no banco.. ele não aplica as alterações e não me retorna erro....
Estranho....

Alguém teria alguma dica ?


Marcos.rio

Marcos.rio

Responder

Posts

16/02/2005

Wwenceslaunew

Uma coisa que estou vendo como erro seria:

[b:badfbe722d]CdsLoglogAcao.Value := Acao; [/b:badfbe722d]

Case UpdateKind of
ukModify: Acao := ´Alteração´;
ukInsert: Acao := ´Inserção´;
ukDelete: Acao := ´Exclusão´;
End;

A variável ação só está sendo preenchida após ser aplicada ao field, ou seja, não tem valor. Se o field for obrigatório será retornado erro na atualização. Ajuste o código para:

Case UpdateKind of
ukModify: Acao := ´Alteração´;
ukInsert: Acao := ´Inserção´;
ukDelete: Acao := ´Exclusão´;
End;

[b:badfbe722d]CdsLoglogAcao.Value := Acao; [/b:badfbe722d]

Espero ter ajudado.


Responder

Gostei + 0

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

Aceitar