Fórum Pegar somente registros alterados #425303

02/10/2012

0

Estou usando Delphi 7 com SQL2005. Preciso registrar no log todas alterações ocorrida no cadastro de cliente.
Como fazer isso?
Grato, Márcio.
Marcio Paula

Marcio Paula

Responder

Posts

02/10/2012

Vagner Almeida

Voce pode criar um TMemo em tempo de execução, jogue tudo que precisar dentro dele e salve como arquivo .TXT ou LOG mesmo.
por exemplo:
Obs.: Ignore os pontos "." uso somente para alinhar os códigos.
procedure GravarLOG(Form: TForm; Texto: String;);
var Log: TMemo;
begin
.Log         := TMemo.Create(nil);
.Log.Visible := False;
.Log.Parent  := Form;
.try
...Log.Clear;
...Log.Lines.Add(Texto);
...Log.Lines.SaveToFile('NomeDoArquivo.log');
.finally
...FreeAndNil(Log);
.end;
end;


Toda vez que precisar gravar um log, você chama a procedure assim:

.
.
.
// Salva o texto a ser gravado no log em uma variável, por exemplo
TextoLog := 'Aqui você coloca tudo o que quer salvar em um arquivo .log';

GravarLOG( NomeDoSeuForm , TextoLog );

Espero ter ajudado.
Responder

Gostei + 0

02/10/2012

Deivison Melo

Já pensou em deixar isso a cargo do banco de dados?

Onde vc criaria uma trigger para fazer tal operação!!
Assim garantindo a precisão das informações e além da segurança, já que é o próprio banco de dados que se encarregará de popular a tabela desejada.

Segue um exemplo no link abaixo (Exemplo com uso do MS SQL Server, banco de dados utilizado por vc):

http://gustavomaiaaguiar.wordpress.com/2010/05/06/como-monitorar-e-logar-as-colunas-que-foram-atualizadas/

Espero ter ajudado!

Forte abraço e bons códigos!!
Responder

Gostei + 0

03/10/2012

Marcio Paula

Muito obrigado!

Voce pode criar um TMemo em tempo de execução, jogue tudo que precisar dentro dele e salve como arquivo .TXT ou LOG mesmo.
por exemplo:
Obs.: Ignore os pontos "." uso somente para alinhar os códigos.
procedure GravarLOG(Form: TForm; Texto: String;);
var Log: TMemo;
begin
.Log         := TMemo.Create(nil);
.Log.Visible := False;
.Log.Parent  := Form;
.try
...Log.Clear;
...Log.Lines.Add(Texto);
...Log.Lines.SaveToFile('NomeDoArquivo.log');
.finally
...FreeAndNil(Log);
.end;
end;


Toda vez que precisar gravar um log, você chama a procedure assim:

.
.
.
// Salva o texto a ser gravado no log em uma variável, por exemplo
TextoLog := 'Aqui você coloca tudo o que quer salvar em um arquivo .log';

GravarLOG( NomeDoSeuForm , TextoLog );

Espero ter ajudado.
Responder

Gostei + 0

03/10/2012

Marcio Paula

Muito obrigado!

Já pensou em deixar isso a cargo do banco de dados?

Onde vc criaria uma trigger para fazer tal operação!!
Assim garantindo a precisão das informações e além da segurança, já que é o próprio banco de dados que se encarregará de popular a tabela desejada.

Segue um exemplo no link abaixo (Exemplo com uso do MS SQL Server, banco de dados utilizado por vc):

http://gustavomaiaaguiar.wordpress.com/2010/05/06/como-monitorar-e-logar-as-colunas-que-foram-atualizadas/

Espero ter ajudado!

Forte abraço e bons códigos!!
Responder

Gostei + 0

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

Aceitar