Muitas vezes precisamos modificar um select já existente em uma Query, seja adicionando ou removendo um campo do comando. Sempre que isso acontece, o campo adicionado ou removido não aparece ou some automaticamente do dataset que estamos trabalhando. Para resolver esta questão, você pode usar os códigos seguintes.
Criando um campo em um IBQuery:
procedure TForm1.btnCriaFieldClick(Sender: TObject);
var
T: TStringField;
begin
if qryCliente.Active then
qryCliente.Close;
T := TStringField.Create(Self);
T.fieldName := 'cli_Nome';
T.FieldKind := fkData;
T.DisplayLabel := 'Nome do Cliente';
T.Visible := True;
T.Name := qryCliente.Name + T.FieldName;
T.Index := qryCliente.FieldCount;
T.DataSet := qryCliente;
qryCliente.FieldDefs.UpDate;
qryCliente.Open;
end;
Apagando um campo de um IBQuery:
procedure TForm1.btnApagaFieldClick(Sender: TObject);
var
TC: TComponent;
begin
TC := FindComponent('qryClientecli_Nome');
if (TC <> nil) then
begin
qryCliente.Close;
TC.Free;
qryCliente.Open;
end;
end;
Forte abraço!
|