Страница 1 из 1

Временная таблица в Browse

Добавлено: 18 май 2010, 17:21
BlazeBio
Можно ли из временной таблицы такого типа
table struct MyTable
(
nRec : comp,
cmcNrec : comp,
nname: string,
iid : word,
sstavka: double
)
with index
(
MyTable0 = nRec (Unique,Surrogate),
MyTable1 = cmcNrec
);
передать данные в Browse. Отсюда нужны поля nname,iid,sstavka.
При таком описании в броузере каждая запись постоянно повторяется:
browse br
Fields
MyTable.nname;
MyTable.iid;
MyTable.sstavka;
End;
Записывваются данные в таблицу так:
If (Modifier Getfirst Shbusl = Tsok)
{
Do
{
If (Modifier Getfirst Shb_tar Where (( Shbusl.nrec == Shb_tar.cshbusl)) = Tsok)
{
Do
{
If (Modifier Getfirst Kattar Where (( Shb_tar.ckattar == Kattar.nrec)) = Tsok)
{
Do
{
If (Modifier Getfirst Trstv Where (( Kattar.nrec == Trstv.ckattar)) = Tsok)
{
Do
{
insert MyTable
set
MyTable.nname = shbusl.name,
MyTable.iid = trstv.id,
MyTable.sstavka = trstv.stavka;
}
While (Modifier Getnext Trstv Where (( Kattar.nrec == Trstv.ckattar)) = Tsok);
}
}
While (Modifier Getnext Kattar Where (( Shb_tar.ckattar == Kattar.nrec)) = Tsok);
}
}
While (Modifier Getnext Shb_tar Where (( Shbusl.nrec == Shb_tar.cshbusl)) = Tsok);
}
}
While (Modifier Getnext Shbusl = Tsok);
}

Добавлено: 18 май 2010, 17:23
m0p3e
browse br table MyTable

Добавлено: 18 май 2010, 17:26
BlazeBio
Не проходит. Компилятор ругается, что данной таблицы нет в словаре.

Добавлено: 18 май 2010, 17:51
m0p3e
Надо включить ее в Create View

Добавлено: 18 май 2010, 18:01
BlazeBio
Всё заработало :grin: . Получается, что для временной таблицы нужен обязательно view. Тогда почему компилятор не ругался на таблицы trstv, kattar, shb_tar,shbusl, ведь для них них не было создано view ?
А если я буду создавать view отдельно для временной таблицы и физических таблицы из базы, то мне нужно ли будет явно указывать в fields браузера поле такого плана view2.MyTable.nname : [30],protect ?

Добавлено: 18 май 2010, 18:11
m0p3e
Получается, что для временной таблицы нужен обязательно view. Тогда почему компилятор не ругался на таблицы trstv, kattar, shb_tar,shbusl, ведь для них них не было создано view ?
Потому как они присутствуют в словаре и компилер добавляет их по собственной инициативе.
А если я буду создавать view отдельно для временной таблицы и физических таблицы из базы, то мне нужно ли будет явно указывать в fields браузера поле такого плана view2.MyTable.nname : [30],protect ?
Create View достаточно одного неименованного. Тогда достаточно MyTable.nname.

Код: Выделить всё

Create View
as select *
from
 trstv
,kattar
,shb_tar
,shbusl
,MyTable;

Добавлено: 18 май 2010, 18:23
BlazeBio
Всё понял ! :cool: Большое спасибо за пояснения!