DataSet Provider
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:
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 ?
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
Curtidas 0
Respostas
Wwenceslaunew
16/02/2005
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.
[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.
GOSTEI 0