29th
Авг

Когда добавляю новую колонку в базу, хочу чтобы ее сразу можно было увидеть в DBGrid

Posted by Chas under Delphi, Пост-обзор

Когда добавляю новую колонку в базу, хочу чтобы ее сразу можно было увидеть в DBGrid новую колонку, в обычном режиме – дизайн тайме нужно кликнуть два раза на TIBQuery и правой кнопкой и выбрать Add all fields.

Как программно добавить новое поле?

Serge_Bliznykov
фактически, Вам нужен такой код:

             field := TWideStringField.Create(nil);
with field do begin
Size:= 20;
FieldName := FieldNameAdd;
Dataset := ADODataSet1;
end;

вот, кинул такой код на кнопочку (добавляет отсутствующие в датасете поля):

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
field : TField;
FieldNameAdd : string;
begin
ADODataSet1.Close;
for I := 0 to ADODataSet1.FieldDefList.Count - 1 do
with ADODataSet1.FieldDefList[I] do
if (FieldClass <> nil) and not (faHiddenCol in Attributes) then
begin
FieldNameAdd := ADODataSet1.FieldDefList.Strings[I];
Field := ADODataSet1.FindField(FieldNameAdd);
if (Field = nil) or (Field.Owner <> ADODataSet1.Owner) then begin
field := TWideStringField.Create(nil);
with field do begin
Size:= 20;
FieldName := FieldNameAdd;
Dataset := ADODataSet1;
end;
with DBGrid1.Columns.Add do
begin
FieldName:= FieldNameAdd;
end;

end;
end;
ADODataSet1.Open;
end;

тема на форуме

Похожие статьи