[firebase-br] Checar se tabela existe

Joao de Lima jomello_fire em yahoo.com.br
Qui Set 23 14:00:20 -03 2004


Olha só talvez eu fale um monte de asneiras ou não :-) então vamos lá:
 
1º. - Bom imagino que o usuario logado que vai fazer as alterações tenha direitos pra fazer tudo isso :-)
 
2º - Se voce tem o nome da tabela, verifique se ela existe atraves do SELECT abaixo
 
3º - Crie um procedure e/ou function que receba o nome da tabela e faça todo o processo de DELETAR e CRIAR novamente
 
Olha só as vezes faço uns truquizinhos (que não sei se é o certo) que funciona:
 
Faço todo o processo no IBExpert via SQL ai monto esses comandos no JSP e mando pro banco funciona que é uma maravilha, claro que para algumas situações, normalmente trabalho sempre com procedures, functions e triggers :-)
 
Tem tb na pior das situações se vc esta com o Delphi de disparar o isql chamando o SCRIPT para executar todo o processo.
 
Bom espero ter ajudado ou só complicado talvez :-)
 
Abraços
 
     João
 
Coloquei a sua outra resposta tb ok amigo :-)
 
Olá João,

Realmente existe, mas o problema é que não se pode usar, por
exemplo, um "if exists (select..." dentro de um script como
se faz em uma procedure. Então se for executado um Create Table
de uma tabela que já existe dá erro.

Na verdade cometi um erro na pergunta, seria preciso apagar a
tabela caso ela já exista.

Valeu!


"Luciano R. Machado" <luciano em rsys.com.br> wrote:Olá Anderson,

O que preciso é fazer essa verificação dentro de um script.sql,
infelizmente não tenho como usar um componente para isso. :-(

-- 
Luciano Rodrigues Machado
Programador - Ribeirão Preto-SP

Ander wrote:
> Ola Luciano,
> 
> Voce pode usar isto:
> 
> AuxQ.Close;
> AuxQ.SQL.Clear;
> AuxQ.SQL.Add('SELECT RDB$RELATION_NAME FROM RDB$RELATIONS');
> AuxQ.SQL.Add('WHERE RDB$RELATION_NAME = ' ' '+NomeTabela+' ' ' );
> try
> AuxQ.Open;
> except
> MessageDlg('Erro buscando tabela: '+NomeTabela, 
> mtInformation,[mbOk], 0);
> exit;
> end;
> 
> if AuxQ.RecordCount = 0 then
> begin
> //tabela não existe
> end
> else
> begin
> //tabela já existe
> end;
> 
> Anderson - EasyBit Informática


______________________________________________
FireBase-BR (www.firebase.com.br)
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br


		
---------------------------------
Yahoo! Messenger 6.0 - jogos, emoticons sonoros e muita diversão. Instale agora!


Mais detalhes sobre a lista de discussão lista