Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамическое создание и удаление полей


DelphiLexx ©   (2007-03-27 13:16:00) 

Я хочу сделать так:
среди всех полей у меня есть динамическое число полей(точное число этих полей определяется на этапе работы программы) типа fkCalculated. Перед открытием FIBDataSet'a в BeforeOpen создается нужное число таких полей. Остальные поля (ME_ID, ME_NAME, ME_DESCRIPTION)
формируются из БД после выполнения FIBDataSet.Open.
Но вместо этого у меня получается следующее:
когда я начинаю обращаться к FIBDataSet.FieldByName('ME_NAME').AsString мне выдается сообщение что поле ME_NAME не найдено. Если перед открытием DataSet'a в BeforeOpen не создавать вычисляемые поля, то обращение к FIBDataSet.FieldByName('ME_NAME').AsString ошибок не вызывает.
Так как же правильно создавать в real-time расчитываемые поля.


Johnmen   (2007-03-27 14:59:00) [1]

http://sql.ru/forum/actualthread.aspx?tid=410050


evvcom   (2007-03-27 14:42:00) [2]

> [5] ANB ©   (27.03.07 14:34)

Эт точно! (c) Сухов.


ANB   (2007-03-27 14:34:00) [3]


> а ты думал программировать это только компоненты на форму
> класть?

Хороший программист - ленивый программист. Он заранее помудохается с классами и компонентами, чтобы потом только кнопки класть. :)


evvcom   (2007-03-27 14:19:00) [4]

Ну необязательно. Я, например, наследника написал и горя теперь не знаю.
procedure TMyDataSet.CreateFields;
begin
 inherited CreateFields;
 if not (csDesigning in ComponentState) then begin
   DoDataSetEvent(dseCreateFields);
   if Assigned(FOnCreateFields) then
     FOnCreateFields(Self);
 end;
end;

Идея, надеюсь, понятна?


Jan   (2007-03-27 14:12:00) [5]


> Т.е. все поля я должен создать в ручную.

а ты думал программировать это только компоненты на форму класть?


DelphiLexx   (2007-03-27 13:41:00) [6]


> Перед открытием руками формировать список TFielddefs после
> чего руками создавать зкземпляры.

Т.е. все поля я должен создать в ручную.


Reindeer Moss Eater   (2007-03-27 13:21:00) [7]

Перед открытием руками формировать список TFielddefs после чего руками создавать зкземпляры.


Наверх

Титульная страница Поиск, карта сайта Написать письмо