[firebase-br] Ref. Detectar campo existente em tabela
Ademir Mossane
ademir.mossane em globo.com
Seg Maio 11 11:42:14 -03 2009
Olá 1.ª postagem aqui nem sei se vai ser aceita, mas...
Minhas tabelas sofrm constantes alterações por isso cada vez que crio um
campo no meu banco de dados
meus clientes ao executarem a atualização que necessita desse campo, ele é
criado no evendo on creat do
meu data módule, e assim tenho plena liberdade de criar tabelas e campos
nosvos em meus sistemas
Abraços
Ademir Mossane
Ai vai minha dica.
with auxiliar do begin
sql.Clear;
sql.Add('select rdb$field_name campo from rdb$relation_fields');
sql.Add('where rdb$relation_name = '+QuotedStr('COMPRAS_PAGTO'));
SQL.Add('AND rdb$field_name = '+QuotedStr('DOCUMENTO'));
sql.Add('order by rdb$field_position');
end;
auxiliar.OPEN; //alteração na tabela 'COMPRAS_PAGTO'
if auxiliar.EOF then begin //Não achou o campo procurado na tabela
with SQLQuery1 do begin
busca_transa; //function que eabre a transação
sql.Clear; //adciona o campo ao acessar o sistema
sql.Add('alter TABLE COMPRAS_PAGTO Add DOCUMENTO char(30)');
try
ExecSQL;
SQLConnection1.Commit(Transacao);
except SQLConnection1.Rollback(Transacao); exit; end;
CLOSE;
end;
end;
Mais detalhes sobre a lista de discussão lista