[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