[firebase-br] Criar um campo em todas as tabelas e incluir info. nele sempre que atualizar algo na tabela

Fellipe Henrique fellipe.h em uol.com.br
Ter Abr 26 16:54:51 -03 2011


Sim o sistema em questão é em Delphi.

Porém não quero fazer no sistema, e sim no banco, criando uma Trigger.. 
mas uma que seja generica e seja vinculada a todas tabelas de uma unica vez.

[]s

Em 26/04/2011 16:52, Paulo Portella escreveu:
> Você programa em Delphi?
>
> Vida de americano é assim: iPhone, iPod, iPad, iMac….
> Já a de brasileiro é assim:IPTU, IPVA, ICMS, IPI etc
>
>
> Em 26/04/2011 16:41, Fellipe Henrique escreveu:
>>
>> Obrigado Sandro,
>>
>> Prezado Paulo, a questão minha é a seguinte.. preciso identificar
>> quais registros foram modificados, e pegar o idsync e incluir em uma
>> tabela... pra eu poder sincronizar somente os registros alterados.
>>
>> Mas pra isso, eu não queria criar uma trigger em cada tabela.. e sim
>> uma única e "vincular" em todas as tabelas..
>>
>> []s
>>
>>
>> Em 26/04/2011 16:26, Sandro Souza escreveu:
>>> Bom dia/tarde/noite Felipe.
>>>
>>> Nobre amigo, para o primeiro caso podemos executar o seguinte código:
>>>
>>> EXECUTE BLOCK AS
>>> DECLARE VARIABLE TABELA VARCHAR(40);
>>> DECLARE VARIABLE QUANT INTEGER;
>>> BEGIN
>>> -- Percorre todas as tabelas que não sejam as de sistema.
>>> FOR SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE
>>> RDB$SYSTEM_FLAG<> 1
>>> INTO :TABELA DO
>>> BEGIN
>>> -- Verifica se já consta o campo IDSYNC na tabela atual.
>>> SELECT COUNT(*) FROM RDB$RELATION_FIELDS WHERE(RDB$RELATION_NAME =
>>> :TABELA)AND(RDB$FIELD_NAME = 'IDSYNC') INTO :QUANT;
>>> -- Ainda não consta?
>>> IF (QUANT = 0) THEN
>>> -- Cria o campo IDSYNC na tabela atual.
>>> EXECUTE STATEMENT 'ALTER TABLE ' || TABELA || ' ADD IDSYNC CHAR(40)';
>>> END
>>> END
>>>
>>> Para o seguindo caso, se você não desejar criar triggers, vai ter que
>>> fazer
>>> a nível de aplicação, o que é mais vulnerável.
>>>
>>> Dessa forma, aconselho-te a criar triggers para isso também.
>>>
>>> Espero ter ajudado mais que atrapalhado. :D
>>>
>>> Em 26 de abril de 2011 15:18, Fellipe
>>> Henrique<fellipe.h em uol.com.br>escreveu:
>>>
>>>> Olá amigos,
>>>>
>>>> Estou precisando fazer o seguinte... tenho atualmente cerca de 200
>>>> tabelas,
>>>> e preciso criar nelas um campo chamado "IDSYNC char(40)"
>>>>
>>>> Existe um meio de incluir em todas as tabelas automaticamente?
>>>>
>>>> Outra coisa que precisa, e que sempre no AfterUpdate de cada tabela,
>>>> seja
>>>> informado um valor pra este campo, porém não queria incluir uma
>>>> Trigger em
>>>> cada tabela, queria algo mais generico, tem como fazer isso também?
>>>>
>>>> Obrigado
>>>>
>>>> []s
>>>> Fellipe H.
>>>>
>>>>
>>>> ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>>
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>






Mais detalhes sobre a lista de discussão lista