[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