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

Paulo Portella pportellaa.firebase em gmail.com
Ter Abr 26 16:52:29 -03 2011


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




Mais detalhes sobre a lista de discussão lista