Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.016 c
1-7477
Всеволод Соловьёв
2003-06-20 13:09
2003.07.03
HighLight своими силами.


3-7303
first_aid
2003-06-06 10:01
2003.07.03
Не обновляется атоинкрементальное поле


1-7444
Борис К.
2003-06-23 14:51
2003.07.03
Форма тормозит... :(


14-7662
JibSkeart
2003-06-15 18:17
2003.07.03
При включении компа кричит Bios check sum error


4-7751
sosv
2003-04-30 11:48
2003.07.03
Invalidate




   Наверх