PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Pegar valores do Description dos campos da Tabela. #497830

14/10/2014

0

Boa tarde estou montando um banco de dados e queria aproveitar os valores que coloco em cada campo description na tabela para povoar um ComboBox com estes valores.

Consegui via script fazer uma consulta no banco de dados e filtrar o NomeDoCampo e sua Description:

select rdb$relation_fields.rdb$field_name, rdb$description FROM rdb$relation_fields
WHERE rdb$description <> 0
AND RDB$RELATION_NAME='CLIENTES'


Só que não estou conseguindo passar estes valores para o ComboBox.
No ComboBox estou fazendo assim:

procedure TfrmCadPadrao.FormShow(Sender: TObject);
var
  I, J: Integer;
begin
  for I := 0 to DS.DataSet.FieldCount - 1 do
  begin
    if DS.DataSet.Fields[I].DataType in [ftString, ftWideString, ftInteger,
      ftFixedChar] then
    begin
      J := cbxCampo.Items.Add(DS.DataSet.Fields[I].DisplayLabel);
      SetLength(ListaCheckBox, High(ListaCheckBox) + 2);
      ListaCheckBox[J] := I;
    end;
  end;
end;


Desta forma eu consigo pegar o que coloco em cada DisplayLabel do ClientDataSet e passar para o ComboBox mas, sempre tenho que entrar nele e sair alterando cada um.

Se conseguisse passar para o DisplayLabel ficaria ótimo também.
Estou usando Windows 7, Delphi X6, Firebird 2.5

Se alguém puder ajudar agradeço.
Jiraya San

Jiraya San

Responder

Posts

14/10/2014

Jiraya San

Estou fazendo uns testes aqui e cheguei a este código até o momento:

for X := 0 to DS.DataSet.FieldCount - 1 do
  begin
    if DS.DataSet.Fields[X].DataType in [ftString, ftWideString, ftInteger,
      ftFixedChar] then
    begin
      SQLQuery.Open;
      StrCampo := SQLQueryRDBDESCRIPTION.FieldName;
      Y := cbxCampo2.Items.Add(StrCampo);
      SetLength(ListaCheckBox, High(ListaCheckBox) + 2);
      ListaCheckBox[Y] := X;
    end;
  end;

Obs: No componente TSQLQuery coloquei a string de consulta acima.

Mas na hora de mostrar os valores no combo aparece assm:
RDB$DESCRIPTION
aí invés do conteúdo do campo.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar