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

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

Добавление в Query в run-time поля типа fkCalculated [D7, MySQL]


gorvic ©   (2004-10-27 17:44:00) 

В run-time нужно добавить поле типа fkCalculated, делаю так:
...
var  T: TFloatField;
begin
// сам запрос может быть очень простым "select p1,p2 from dset"
     T := TFloatField.Create(Query1);
     T.FieldName := 'vvv';
     T.Name := Query1.Name + T.FieldName;
     T.FieldKind:= fkCalculated;
     Query1.Fields.Add(T);
     Query1.FieldDefs.UpDate;
     Query1.OnCalcFields:= TaxCalc; // назначаем функцию
     Query1.Open;      
Поля p1,p2 не определяются как Query.FieldByName('p1').asFloat и
не отображаются в DBGride...У кого-нибудь есть идеи как решить


Reindeer Moss Eater   (2004-10-28 11:52:00) [1]

Они здесь действительно не при чем.


gorvic   (2004-10-28 11:28:00) [2]

Запросы динамические и число Persistent-полей разное, но причем здесь это ?


Nikolay M.   (2004-10-28 09:33:00) [3]

Ты [1] прочитал? Сколько у тебя Persistent-полей?


gorvic   (2004-10-28 09:24:00) [4]

Дело в том, что сам запрос формируется в run-time. Можно, конечно, сделать Query.Open - вытащить все поля из этого запроса,
потом Query.Close, добавить вычислимое поле к этим полям и снова
Query.Open, но это, согласитесь не очень... Можно ли по другому?


Reindeer Moss Eater   (2004-10-27 19:06:00) [5]

Какую такую проблему?


gorvic   (2004-10-27 18:42:00) [6]

У TField есть свойство DataSet - это так, но это не решает проблему


Reindeer Moss Eater   (2004-10-27 18:21:00) [7]

У TField есть свойство DataSet


Nikolay M.   (2004-10-27 18:13:00) [8]

Видимо, нужно создать соответствующие Persistent-поля в дизайне или в рантайме, аналогично приведенному коду.


Наверх

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