Последние записи
- Как запустить программу указанную в Edit.Text
- Скачать файл с использованием потока
- Поиск слова в Memo
- Распаковщик формата .img из GTA San Andreas
- Подсчет количества повторяющихся букв в файле
- Простейший скрипт загрузки картинки с помощью php
- Рассылка. Выпуск 154
- Получение картинки с веб-камеры
- Скопировать определённый кусок image
- Сделать printscreen экрана и сохранить
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;

