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

Вниз

Динамическое создание вычисляемого поля   Найти похожие ветки 

 
Pk   (2003-02-10 11:45) [0]

создаю его так:

procedure createfild;
var f:TField;
begin
f:=TField.Create(DataModule1.Query1);
f.Calculated:=true;
f.Name:="Pole1";
DataModule1.Query1.Fields.Add(f);
end;

затем в программе:
DataModule1.Query1.close;
DataModule1.Query1.sql.text:="select * from table1";
createfild;
DataModule1.Query1.open
- вылетает исключение: "поле "" не может быть вычисляемым или lookup".


 
passm ©   (2003-02-10 11:53) [1]

Pk (10.02.03 11:45)> f.FieldName = ?


 
Pk   (2003-02-10 11:57) [2]


> passm © (10.02.03 11:53
f.FieldName :="Pole1"; - результат все тот же. поле "Pole1" не может быть вычисляемым или lookup.


 
passm ©   (2003-02-10 12:25) [3]

Стоп! А почему TField? Это абстрактное поле. Используй конкретное (TIntegerField, TStringField, TFloatField...)
И сначала открывай запрос, а потом уж добаляй поле.


 
Pk   (2003-02-10 13:10) [4]

Использую типизированое поле. Эта ошибка исчезла но возникает другая. Если я создаю поле при открытом запросе вываливается исключение - при открытом наборе даных даную операцию невозможно выполнить, а если я при закрытом создаю это поле то сразу после его создания выполняется событие OnCalculateFields и исключение вылетает уже там (что естествено так как датасет закрыт и все поля на основании которых вычисляется данное, неизвестны)


 
Pk   (2003-02-10 13:17) [5]

забыл сказать: в процедуру createfild добавил F.DataSet:=DataModule1.Query1 - а то появлялось сообщение что поле Pole1 не имеет датасета

кто знает что я не так делаю?


 
Shaman ©   (2003-02-10 13:20) [6]

У тебя скорее всего в возвращаемом наборе присутствует поле с имененм "Pole1".


 
VAleksey ©   (2003-02-10 13:50) [7]

Все поля необходимые в запросе создай сначала, потом открывай.


 
passm ©   (2003-02-10 13:56) [8]

var
f: TIntegerField;
begin
f:= TIntegerField.Create(Application);
f.FieldName:= "FIELD1";
f.FieldKind:= fkCalculated;
f.DataSet:= Query1;
Query1.Open
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
1-87524
ZaM2000
2003-02-16 13:44
2003.02.27
Работа с ListView другого приложения. Как получить текст итема?


3-87277
Olivka
2003-02-09 12:34
2003.02.27
как упаковать таблицу DBASE , если работаю без бде, через АДО?


3-87263
KonuhovSegey
2003-02-04 18:19
2003.02.27
Запрос на Update для TIBDataSet


7-87732
VideoLord
2002-12-26 03:19
2003.02.27
Такого не может быть...


1-87556
ltexcimer
2003-02-17 13:35
2003.02.27
Удалить строку StringGrid.