Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.48 MB
Время: 0.006 c
14-51928
vaneks
2002-11-25 13:01
2002.12.16
Системные папки МастДай


3-51630
Sergey_Suhoy
2002-11-27 10:44
2002.12.16
Переименование полей на DBGrid & обработка ошибки Key Violation


6-51872
Михаил
2002-10-22 11:43
2002.12.16
Как прослушать на локальной машине порт 12000 ?


14-51963
Zhirnov Maxim
2002-11-24 13:09
2002.12.16
SMS & PC


1-51755
Berg
2002-12-04 15:51
2002.12.16
Не запускается HELP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский