[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