Главная страница
    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.47 MB
Время: 0.007 c
14-51893
-novichok-
2002-11-24 10:25
2002.12.16
Уважаемые мастера у меня проблема с шрифтами !!!..


7-51983
dronas555
2002-10-15 01:30
2002.12.16
Память


3-51600
Ruf
2002-11-27 18:46
2002.12.16
Летит таблица


6-51880
kostik78ua
2002-10-18 10:38
2002.12.16
TNMMsg+TNMMsgServ


6-51852
ULTRIX
2002-10-10 22:01
2002.12.16
Получение ресурсов к папке





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский