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

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

динамическое создание вычисляемого поля AdoQuery


Arinyshka ©   (2008-12-01 14:52:00) 

connectionString прописывается динамически во время выполнения - поэтому не могу просто добавить поле в Query статически.
нужно в run-time добавить к датасету QrUni:TAdoQuery 2 calculated поля.
qrUni.Fields.Add(); ?? Не могу сообразить как это сделать :(


Сергей М.   (2008-12-01 16:05:00) [1]


> можно ли было к существующему датасету добавить вычисляемые
> поля динамически?
>


Сказано ведь уже - можно.


Arinyshka   (2008-12-01 16:00:00) [2]


> Надо было явно добавить все поля , с которыми работает "кричащая
> прожка", и в конец списка добавить свое выч.поле

Собственно, так и сделала... Это я более-менее быстро сообразила :) Но все-таки хочется понять, можно ли было к существующему датасету добавить вычисляемые поля динамически?


Сергей М.   (2008-12-01 15:31:00) [3]


> прожка кричит. что не находит других полей


И не найдет - ты же их собственноручно выкинула, добавив вычисл.поле.
Надо было явно добавить всеполя , с которыми работает "кричащая прожка", и в конец списка добавить свое выч.поле


Поросенок Винни-Пух   (2008-12-01 15:29:00) [4]

все намногее не так.


Arinyshka   (2008-12-01 15:26:00) [5]

то есть примерно так:


qrUni: TAdoQuery;
****
var
MyField: TStringField;

begin

MyField.Create;
MyField.FieldKind = fkCalculated;
qrUni.Fields.Add (MyField);



и потом спокойно обрабатывать его в событии OnCalc?

Просто я попыталась быстренько таки прописать поле статически в qrUni... И в результате прожка кричит. что не находит других полей - тех, которые просто передавались из БД


Сергей М.   (2008-12-01 15:05:00) [6]


> как это сделать


Надо как минимум:

- создать соответствующий типу поля объект-наслединк класса TField (TIntegerField, TStringField e.t.c),

- установить его св-во FieldKind = fkCalculated

- передать этот объект параметром в метод MyDataSet.Fields.Add


Arinyshka   (2008-12-01 15:01:00) [7]

уже сообразила, что поле добавить могу и статически... но все равно хочется в run time


Наверх

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