[firebase-br] usando o execute block

Cassios cassio.hc em gmail.com
Qua Fev 3 15:30:35 -03 2010


Grande Sandro.. obrigado pelo retorno.
Ajudou muito, funcionou beleza...

como eu faço pra fazer o mesmo com trigger e Stored procedures? qual a 
tabela do sistema que guarda isso?


vlw...




Sandro Souza escreveu:
> Bom dia/tarde Cassios.
> 
> Grande Cassios, com certeza podemos executar comandos de DDL em stored
> procedures e blocos de comando, mas via EXECUTE STATEMENT.
> 
> Além disso, o SELECT COUNT sempre vai retornar um valor (nem que seja zero),
> ou seja, da forma que está estruturado esse comando, o operador EXISTS
> sempre retornará verdadeiro, e sempre tentará excluir a tabela.
> 
> Por favor, teste o seguinte comando:
> 
> SET TERM ^ ;
> 
> EXECUTE BLOCK AS
> BEGIN
>   IF (EXISTS(SELECT
>                RDB$RELATION_NAME
>              FROM
>                RDB$RELATIONS
>              WHERE
>                RDB$RELATION_NAME = '*minha_tabela*')) THEN
>     *EXECUTE STATEMENT* 'DROP TABLE *minha_tabela*';
> END^
> 
> SET TERM ; ^
> 
> Espero ter ajudado mais que atrapalhado. :D
> 
> Em 3 de fevereiro de 2010 14:14, Cassios <cassio.hc em gmail.com> escreveu:
> 
>> Oi.
>>
>> to fazendo isso:
>>
>> SET TERM ^ ;
>> EXECUTE BLOCK
>> as
>> begin
>>     if (EXISTS(SELECT COUNT(RDB$RELATION_NAME)
>>                FROM RDB$RELATIONS
>>                WHERE (RDB$RELATION_NAME = 'minha_tabela')))  then
>>        DROP TABLE minha tabela;
>> END ^
>>
>> SET TERM ; ^
>>
>>
>> o problema é que retorna erro no drop table.. não dá pra usar comandos de
>> estrutura? com delete, insert, update funciona... mas drops, alters não.
>>
>> preciso fazer várias coisas com triggers e SPs também. tipo, verificar se a
>> trigger existe, caso exista, drop ela e crio a nova, com as modificações...
>> é para meu atualizador de BD.
>>
>> vlw as dicas desde já.
>>
>> flw.
>>
>>
>> ______________________________________________
>> 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