Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.03;
Скачать: CL | DM;

Вниз

Как корректно добавить калькулироемое поле?   Найти похожие ветки 

 
Aleksandr ©   (2003-06-09 16:31) [0]

Проблема в следующем: Текст запроса для TQuery у меня загружается из файла. У самого этого экземпляра TQuery в дизайн-тайме ни одного поля нет - все динамическое. Точно так же из файла грузится список калькулируемых полей (они потом присваиваются TDBText"ам всяким. Но вот проблема - если я перед открытием Датасета добавляю ему калькулируемые поля, то потом при открытии остальные поля динамически не добавляются. Код добавления калькулируемого поля:


procedure AddCalcFields(Dataset : TDataset);
procedure InitField(aFieldName : string);
begin
F:=TStringField.Create(Dataset);
F.FieldName:=aFieldName;
F.Name:=DataSet.Name+F.FieldName;
F.Size:=50;
F.FieldKind:=fkCalculated;
F.ReadOnly:=true;
F.Index:=DataSet.FieldCount;
F.DataSet:=DataSet
end;
begin
if NOT Assigned(Findfield("Field1")) then
InitField("Field1");
...
end;


Соответственно, добавить калькулируемые поля можно только перед открытием набора данных (иначе нельзя вот это: F.DataSet:=DataSet). И добавляются либо калькулируемые, либо физические. Как тут можно сделать, чтобы при открытии добавлялось и то и другое?


 
clickmaker ©   (2003-06-09 18:21) [1]

Если юзаешь MS SQL, то можно на уровне таблицы сделать вычисляемое поле, правда только, если оно вычисляется на основе других полей из этой же таблицы. Либо где-то описывать этот динамический набор вместе с вычисляемыми и создавать их все приведенным кодом.


 
Aleksandr ©   (2003-06-09 19:08) [2]

Увы, юзается Парадокс. Так-то понятно было бы... А по второму варианту тоже туго - ориентация идет от физической таблице, и из хранимой структуры удалются поля, если они в физической таблице отсутствуют.



Страницы: 1 вся ветка

Текущий архив: 2003.07.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
6-7576
xman
2003-04-28 21:20
2003.07.03
есть ли в сети нужный мне компьютер?


14-7706
Burmistroff
2003-06-14 18:31
2003.07.03
www.coderz.net = 127.0.0.1 ???


6-7590
Алексей Глеб
2003-04-26 17:15
2003.07.03
Server & Delphi


6-7570
danka
2003-04-25 17:42
2003.07.03
idFTP и id HTTP


1-7422
BillyJeans
2003-06-23 10:38
2003.07.03
Можно ли консольное приложение засунуть в трей?