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

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

Добавление LookUp поля [D7, Win2k]


Mr. Chel ©   (2004-02-03 15:06:00) 

Как можно корректно добавить LookUp поле в Query?
Такой код выдает ошибку "Filed: "FIMS_TYPE" cannot be calculated or lookup field":
var F : TField;
begin
qrDistrib.Close;
qrPtype.Close;
F := TField.Create(nil);
qrDistrib.Fields.Add(F);
with F do
begin
Lookup:=true;
Required := false;
Origin:="";
FieldName:="FIMS_TYPE";
KeyFields := "FIMS_TYPE";
LookupDataSet := qrPtype;
LookupKeyFields := "DIC_VALUE";
LookupResultField := "DIC_NAME";
end;
qrPtype.open;
qrDistrib.Open;


Mr. Chel   (2004-02-03 16:43:00) [1]

http://www.rxlib.ru/faqs/faqd_en/17146.html

Все, сделал. ;)
Спасибо.


Mr. Chel   (2004-02-03 16:11:00) [2]

Если предварительно в запросе создать FieldDef-ы то опять начинает падать на AV.


Mr. Chel   (2004-02-03 16:05:00) [3]


> FieldName:="FIMS_TYPE";
> KeyFields := "FIMS_TYPE";

Да согласен это гон.. Уже исправил, но ошибка field not found, начала выпадать после исправления.


clickmaker   (2004-02-03 16:01:00) [4]

и как это кстати может быть
FieldName:="FIMS_TYPE";
KeyFields := "FIMS_TYPE";

У тебя ж есть уже FIMS_TYPE с данными, а лукап это для его выбора, т.е. FIMS_TYPE_NAME например


Mr. Chel   (2004-02-03 15:55:00) [5]

Так с AV разобрался. Тут в другом стала проблема. Выдает такое сообшение qrDistr: Field "FIMS_TYPE" not found. Вроде как пытается наладить лукап связь, а поля "FIMS_TYPE" еще нет(запрос еще не открыт)


clickmaker   (2004-02-03 15:47:00) [6]

F := TStringField.Create(Self);
F.FieldKind := fkLookup;
F.DataSet := qrDistrib;


Mr. Chel   (2004-02-03 15:39:00) [7]

Поставил TStringField, стало еще хуже - теперь AV вылетает. ;( в момент qrDistrib.Open;


clickmaker   (2004-02-03 15:22:00) [8]

Нельзя создавать просто TField - это абстрактный класс. TStringField, TIntegerField и т.д.


Наверх

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