Auditoria-Gravar os SQL executados(insert,delete, etc)BD-IB

Delphi

06/07/2004

idéias

preciso fazer uma especie de auditoria em meu sistema que gravasse os SQL executados (somente INSERT, DELETE e UPDATE).
Utilizo a paleta Interbase, consegui alguma coisa com o SqlMonitor ainda nao é o que eu quero.

alguem poderia me ajudar?


Danilodcf

Danilodcf

Curtidas 0

Respostas

Khundalini

Khundalini

06/07/2004

A edição 51 da revista ClubeDelphi apresentou uma técnica de como registrar e gerenciar todas as alterações no banco de dados. É como se ele gerasse um log dos dados em .XML. Muito bom.

[]s
Rubem Rocha
Manaus, AM


GOSTEI 0
Danilodcf

Danilodcf

06/07/2004

obrigado pela dica, mas eu preceiso fazer isto com a paleta com a paleta Interbase, nao uso dbExpert.


GOSTEI 0
Khundalini

Khundalini

06/07/2004

Companheiro, a matéria da revista faz uso de TClientDataSet + TDataSetProvider para implementar isso. E por usar TClientDataSet, você pode usar qualquer tipo de dataset que quiser em um TDataSetProvider: IBX, IBO, dbExpress (e não dbExpert), BDE, ADO, etc. Procure informações sobre esse artigo.

[]s
Rubem Rocha
Manaus, AM


GOSTEI 0
Danilodcf

Danilodcf

06/07/2004

Agradeco novamente pela atencao.

Companheiro, por enquanto nao quero usar um TDataSetProvider, pois teria que mudar no sistema inteiro.
Na verdade, gostaria de saber se teria como eu extrair o Sql direto de um TIBDataSet.
Voce saberia me dizer tem como fazer isto?


GOSTEI 0
Khundalini

Khundalini

06/07/2004

Que eu saiba, o TIBDataSet possui as seguintes propriedades (Detalhe: consultei isso apenas usando o Code Completion do IDE do Delphi):

property UpdateSQL;
property DeleteSQL;
property InsertSQL;

Isso sem falar que você poderia interceptar a ação que estã sendo executada no evento OnUpdateRecord (acredito eu).


[]s
Rubem Rocha
Manaus, AM


GOSTEI 0
Danilodcf

Danilodcf

06/07/2004

Tem alguma sugestao de como gravar os sql durante o OnUpateRecord?

So estou conseguido gravar os sql sem valores (Ex: UPDATE CLIENTE SET CD_CLIENTE = :CD_CLIENTE). Atraves das propriedades QDelete, QInsert, QModify.
Como obter os sql com os valores (Ex: UPDATE CLIENTE SET CD_CLIENTE = 1654)?


GOSTEI 0
Khundalini

Khundalini

06/07/2004

Ora, companheiro, experimentou consultar a propriedade Params (ou Parameters) de um TIBDataSet???
[]s


GOSTEI 0
POSTAR