Динамично добавяне на полета към TQuery
Господари. Помощ за следния код ругае
Полето "ID" няма набор от данни.
Query_AreaTab.SQL.Clear;
Query_AreaTab.SQL.ADD ("ИЗБЕРЕТЕ ИДЕНТИФ ОТ PF.AREAS_TAB КЪДЕ AREA_TYPE> = 3");
Query_AreaTab.Open;
Query_AreaTab.Fields.Clear;
Query_AreaTab.Fields.Add (TFloatField.Create (Query_AreaTab));
Query_AreaTab.Fields [0] .DisplayWidth: = 15;
Query_AreaTab.Fields [0] .FieldKind: = fkData;
Query_AreaTab.Fields [0] .FieldName: = "ID";
Query_AreaTab.Fields [0] .Visible: = True;
Query_AreaTab.Fields [0]. Необходимо: = Вярно;
Данни не това, различни fk
какво fk ти трябва, моля, кажи ми!
fkCalculated Не помня как се пише. И присвоете стойността на OnCalcFields. fkData са полета, които присъстват физически в таблица или в SQL заявка.
Ако не създадете полета в заявката и в мрежата в Design, тогава няма да е необходимо да ги дефинирате в RunTime - всичко, което заявката връща, ще бъде отразено в мрежата:-)
Добре, така да бъде, но тогава имате объркване с последователността на действията, макар че не сте посочили в кой ред код лети грешката.
Мисля, че следва:
1) вместо
RxDBGrid1.DataSource: = DS_AreaTab;
поставете RxDBGrid1.DataSource: = нула и се свържете след отваряне на заявката
2) Query_AreaTab.Open;
Query_AreaTab.Fields.Clear;.
Предлагам първо да дефинирате полетата и след това да отворите заявката
За една заявка Може да сте се развълнували достатъчно един DataSource. По-удобно е да работите със статични полета.
Може би луда идея, но се опитайте да създадете полета преди Open.
Постоянно използвам справочници по тази схема. Грешката наистина е в последователността на действията. Сега не помня точно, но трябва да има нещо в този дух:
Запитване 1.Затваряне;
Query1.FieldDefs.Clear;
Query1.Fields.Clear;
Query1.SQL.Text: = "ИЗБЕРЕТЕ ИДЕНТИКА ОТ MyTabale";
с Query1.FieldDefs.AddFieldDef започват
Име: = AFieldName;
Тип данни: = ftFloat;
Размер: = 0;
CreateField (Query1);
край;
Запитване 1. Отворено;
Полетата за търсене се създават по същия начин, но необходимите атрибути са посочени в края:
.
AField: = CreateField (Query1);
AField.FieldKind: = fkLookup;
AField.LookupDataSet: = Query2;
AField.KeyField: = "ID";
.
край;
.
> lmatveev (12.08.02 03:51)
Благодаря, получиха се обичайните полета.
Опитвам Lookup-fields в момента.
- Как да добавите зърно в Photoshop, Graphics и Design Portal
- Как да добавя филтър
- Как да направите сами кондензатор на тъмно поле
- Как да добавите контакт към черния списък с обаждания и SMS на смартфон LG
- Как да добавите банер към уебсайта на институцията Уебсайтове за училища и други образователни институции - Училищен шампион