Auditoria - Marcar registro como apagado e não exclui-lo do banco.

Srs. bom dia.

Para fins de auditoria, inclui na minha tabela XXX os campos:
user_add,
user_update,
data_insert,
data_update
registro_deletado.

Oq estou querendo fazer é que quando o usuário apagar um registro o registro receba uma flag no campo registro_deletado (s).
Assim nas minha consultas e form eu configuraria a sql para não exibir os campos marcados como ‘S’ no registro_deletado.

Alguem já se deparou com esse problema e pode me ajudar?

Obrigado.

Você teria 2 (duas) tabelas: Ex. 1- registros 2- log do sistema ??

Se entendi,
toda vez que o usuario fizer um DELETE no registro da tabela desejada, vc precisa registrar quem fez. Seria isto?

Se for:

 Ao apagar o registro, no 'afterDelete', vc pode usar o "sc_exec_sql()" e inserir na tabela (2), as informações que vc deseja.

Ola amigo, é quase isso. eu não quero ter que criar outra tabela, quero simplesmente fazer com que o botao de delete do scriptcase não apague o registro e sim inclua o caracter ‘S’ no campo ‘registro_deletado’ da tabela, assim não precisaria criar outra tabela, pois na minha sql do form e de consultas eu não exibo os registro marcados com ‘S’.

Isso é possível?

Ok!

Vc pode então fazer o seguinte:

1 - crie um botão PHP
e escreva o seguinte codigo :

   sc_exec_sql("UPDATE nome_tabela SET registro_deletado = 'S' WHERE codigoID = 'numero do registro');

  ao pressionar o botao, ele vai fazer o UPDATE do campo no arquivo. Não esqueça de na barra de ferramentas, selecionar este botão somente p/ edição.

2 - Desabilite o botão DELETE

  • Bem, para que no form de consulta fique mais legal, vc pode criar um campo tipo imagem HTML (nome do campo {flag}), colocar uma imagem de ‘flag’ ou qualquer coisa q vc ache legal. Então,

no evento onLoad:

      sc_field_display({flag},off);

no evento onRecord:

        if({registro_deletado} == 'S') {
              sc_field_display({flag}),on);
        }else {
              sc_field_display({flag}),off);
        }           

isto vai fazer que cada registro, seje checado e caso {registro_deletado} = ‘S’, acionar o campo {flag}.

acho q e’ isto…

Um ano depois…rsrss

Ola amigo, desculpe a demora.
Deu certo a sugestão. Obrigado!