Программное добавление поля, на примере ADO, по аналогии можно сделать и с FireDAC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
var f: TIntegerField; begin ADOQuery.Open; f := TIntegerField.Create(ADOQuery); //Создаем поле тепа INTEGER f.FieldKind := fkLookup; //Указываем на то что оно у нас LookUp f.KeyFields := 'key_name'; //Поле ключ, по которому будет искаться соответствие f.LookupDataSet := ADOQueryDictionary; //Набор данных (DataSet) в котором буду отбираться данные f.LookupKeyFields := 'id'; //Уникальный ключ в наборе данных ADOQueryDictionary, по которому будем искать f.LookupResultField := 'name'; //Поле из набора данных ADOQueryDictionary, которое будет отображаться в результате f.Name := 'field_name'; //задаем имя нашему полю ADOQuery.Fields.Add(f); //включаем его в сотав нашего набора данных end; |