![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Добавление в 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-поля в дизайне или в рантайме, аналогично приведенному коду.