[firebase-br] teste de existencia de tabela.

Rodrigo dominio em engeplus.com.br
Sex Set 25 18:15:29 -03 2009


Caro Amigo,

Faço Isso meio no Braço, mas vamos lá derepente te ajuda:

Dentro da IBQuery  IBTabela vai o seguinte script
select Distinct(rdb$relation_name) from RDB$RELATIONS where rdb$system_flag 
= 0 and Upper(rdb$relation_name) = Upper(:NOMETABELA)


Crio uma Variavel Tem: Integer e uso um componente de Script;

if TabEmpresaVERSAO.Value <= 1022 then begin
     Memo1.Lines.Add('Atualização 1022');
     IBTABELA.Close;
     IBTABELA.ParamByName('nometabela').AsString:= 'GLOBRELCAIXA';
     IBTABELA.Open;

     ListBox1.Clear;
     ListBox1.Items.Add(TRIM(FOrm1.IBTABELARDBRELATION_NAME.AsString));

     Tem:= ListBox1.Items.IndexOf('GLOBRELCAIXA');

     if Tem = -1 then begin

     IBScript2.SQL.Clear;
     IBScript2.SQL.Add('CREATE GLOBAL TEMPORARY TABLE GLOBRELCAIXA('+#13+
     'HISTORICO VARCHAR(200),'+#13+
     'VALOR NUMERIC(8,2),'+#13+
     'DATA DATE,'+#13+
     'DESPESA VARCHAR(100),'+#13+
     'HORA TIME,' + #13 +
     'NUMCONTA VARCHAR(30))' + #13 +
     'ON COMMIT PRESERVE ROWS;');
     IBScript2.Execute;

     END;

     // Aqui fecha a atualização'
     TabEmpresa.Locate('CODEMPRESA', LISTA.ValueFromIndex[EMP], []);
     TabEmpresa.Edit;
     TabEmpresaVersao.Value:= 1023;
     TabEmpresa.Post;
     //aqui era
     END;

Nesse caso ele procura a tabela existente caso encontre, a variavel TEM fica 
 >-1 entao nao atualiza.

Espero ter ajudado.


Atenciosamente,

Rodrigo





----- Original Message ----- 
From: "Carlos Clicio" <clicio em prognum.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, September 25, 2009 1:58 PM
Subject: [firebase-br] teste de existencia de tabela.




Caros amigos preciso fzr um script sql q altere a estrutura de
determinada tabela caso ela existe e nao de erro caso contrario, algo
como if exists TABELSE no mssql.

Tem alguma coisa parecida no firebird?

Grato pela atenção.

______________________________________________
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

__________ NOD32 4458 (20090925) Information __________

This message was checked by NOD32 antivirus system.
http://www.eset.com






Mais detalhes sobre a lista de discussão lista