Форум: "Базы";
Текущий архив: 2002.12.16;
Скачать: [xml.tar.bz2];
ВнизВычисляемые поля Найти похожие ветки
← →
lety (2002-11-25 18:00) [0]Программно создается таблица. В ней нужны вычисляемые поля. Если я одному из добавленных полей FieldKind присваиваю fkCalculated, то при вычислении повляется сообще об ошибке "неверный тип поля".
Можно ли программно (не с помощью редактора полей) создать вычисляемые поля (или лукап) и как это сделать?
← →
oss (2002-11-25 23:56) [1]1.а код самого вычисления дай ?
2.автокалк = тру ?
3.после сощдания ты закомител транзакцию ?
← →
lety (2002-11-26 01:02) [2]вычисления? (Если я даже ничего не вычисляю, то сообщение появляется все равно). У меня с лукап полем тоже самое. Кроме филдкайн:=фкЛукап, я заполняю еще 4 поля - не помню какие, они кучкой подряд стоят (у меня работа отдельно от инета).
автокалк тру
какую-такую транзакцию?
← →
Johnmen (2002-11-26 09:30) [3]Приводи код создания полей - будем разбираться...
(Вообще говоря, вопрос часто задается...)
← →
lety (2002-11-27 22:23) [4]Вот...
//добавляются поля из другой (заполненной таблицы)
Table1.FieldDefs.Add("GroupName",ftString,60,false);
Table1.CreateTable;
Table1.BatchMove(TableZK,batAppend); //заполняю поля
DataMod.TableZKN.FieldByName("GroupName").FieldKind:=fkLookup;
DataMod.TableZKN.FieldByName("GroupName").KeyFields:="KodOb";
DataMod.TableZKN.FieldByName("GroupName").LookupDataset:=DataMod.Table3;
DataMod.TableZKN.FieldByName("GroupName").LookupKeyFields:="KodOb";
DataMod.TableZKN.FieldByName("GroupName").LookupResultField:="Name";
DataMod.TableZKN.Open;
Все. Дальше говорится, что неверный тип поля. Все свойства заполнены верно, потому что при создании поля GroupName с помощью редактора полей все так же выходит и все работает.
Видимо, лукап поле нельзя добавлять через FieldDefs. Но как тогда поступить иначе?
← →
MsGuns (2002-11-27 22:35) [5]Из примера ничего не понятно, какая связь между TableZK и TableZKN ?
← →
lety (2002-11-28 00:13) [6]TableZK - исходная таблица
TableZKN - создаваемая программного - такая же как и исходная, но пара полей должна быть добавлена.
Но не в том суть все равно.
Черт, я перепутала немного. Table1 - это TableZKN
Все заново лучше перепишу!
______________________________________
Table1 - создается таблица, Table2 - исходная
Table3 - справочник
//добавляются поля из другой (заполненной таблицы)
Table1.FieldDefs.Add("GroupName",ftString,60,false);
Table1.CreateTable;
Table1.BatchMove(Table2,batAppend); //заполняю поля
Table1.FieldByName("GroupName").FieldKind:=fkLookup;
Table1.FieldByName("GroupName").KeyFields:="KodOb";
Table1.FieldByName("GroupName").LookupDataset:=DataMod.Table3;
Table1.FieldByName("GroupName").LookupKeyFields:="KodOb";
Table1.FieldByName("GroupName").LookupResultField:="Name";
DataMod.TableZKN.Open;
← →
lety (2002-11-28 00:14) [7]Блин, вместо последней строчки надо Table1.Open;
Вот. Что же делать с лукап полем?
← →
MsGuns (2002-11-28 03:25) [8]Ошибка в том, что ты путаешь TTablle с ФИЗИЧЕСКОЙ таблицей (а BatchMove работает с физическими сущностями). Когда ты даешь Create физ.таблице, то ОНА и ДОЛЖНА СОЗДАВАТЬСЯ ! Приведенный тобою фрагмент говорит о том, что создается таблица из одного поля, в котором НЕТ поля "KodOb" !
← →
IrenFD (2002-11-28 04:08) [9]Я вот сколько работаю с Делфи, так мне все кажется, что в мастере создания лукапного поля и в свойствах этого же поля свойства LookupKeyFields и LookupResultField перепутаны.
Внимательно присмотритесь, потому что мне все время после добавления лукапного поля приходится в свойствах менять поля.
← →
MsGuns (2002-11-28 04:16) [10]>IrenFD © (28.11.02 04:08)
Не знаю что Вы имеете в виду под словом "Мастер создания лукапного поля", но если DBD (Database DeskTop), то советую Вам решительно от него отказаться !. Идеология LookUp в Paradox (dBase) и клиент-серверных БД существенно отличается !. А вот в свойствах LookUpxxx "папы" всех датасетов намного больше БИЗНЕС-логики - поэтому присмотреться надо ВАМ.
← →
lety (2002-11-28 08:59) [11]> MsGuns © (28.11.02 03:25)
Все поля я создаю выше Их 3 десятка, и кодоб там тоже есть. Я комментарий написала "//добавляются поля из другой (заполненной таблицы)" Потому что суть вопроса не этом!!
Я про лукап поле спрашиваю.
← →
ЮЮ (2002-11-28 09:44) [12]Если "GroupName" - лукап поле, то зачем оно добавлено в ФИЗИЧЕСКУЮ таблицу?
Table1.FieldDefs.Add("GroupName",ftString,60,false);
Table1.CreateTable;
лукап поля существуют только в клиентском DataSete
← →
oss (2002-11-28 12:11) [13]ну блин.... напиши обычный select или create со всеми нужными соединениями и выборками, и надежнее и наверно проще будет
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.12.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c