Ir para conteúdo
Fórum Script Brasil
  • 0

Gerar Log de Alterações


Roberto Gugisch

Pergunta

Criei uma tabela chama histórico com a seguinte estrutura:

data (timestamp) - data e hora

login (varchar 10) - login do usuário

tabela (varchar 20) - nome da tabela

id (integer) - ID do registro

tipo (varchar 10) - tipo (insert/delete/update)

conteudo (varchar 0) - conteudo do registro

o que eu gostaria é de um loop com os campos para preenchimento do campo conteudo.

Esse campo teria a seguinte forma:

id = 10

cnpj = 1245678912

data = 15/10/2010

descricao = teste de descricao

Eu imaginei algo assim

FOR x IN  [b]quantidade de campos[/b]
  If new.campo <> old.campo and tipo = 'update'
     svariavel = nome do campo || ' = ' || old.campo || ' / ' || new.campo || [b]troca de linha[/b]
  else
     svariavel = nome do campo || ' = ' || new.campo || [b]troca de linha[/b]
  end if
  x = x + 1
end loop

INSERT INTO historico 
  (data, login, tabela, id, tipo, conteudo) 
VALUES
  (now(), new.login, tabela, new.id, new.tipo, sVariavel);

Só que não tenho nem idéia de como pegar a quantidade de campos nem de compará-la com o x do FOR

Nem como faz\er o IF e as atribuições à variavel.

Alguém tem algo assim pronto ou que saiba como fazer para me ajudar?

Desde já agradeço a todos!

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...