Главная страница
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.015 c
1-7439
ViJen
2003-06-23 14:07
2003.07.03
Все те же текстовые файлы


1-7473
Vovan1980
2003-06-20 09:23
2003.07.03
Помогите ! Точка на кривой заданой точками


1-7521
U-351
2003-06-21 21:39
2003.07.03
Расположение окон в Win


3-7326
supersan
2003-06-09 12:38
2003.07.03
Глюк с DBGridEh? Или со мной что-то не то?


7-7742
demonyator
2003-04-14 23:49
2003.07.03
Как в XP спрятаться от ALT+TAB?