попробуйте вместо
_loop opt_dbt ordered by opt_dbt.date_dolg(desc)
dbt._loop opt_dbt ordered by index opt_dbt_5
а если просто loop то ошибок не возникает?
было еще, что при некоторых операциях незя мешать данные с разных вьюшек. А можно индекс и во from указать
from opt_dbt(opt_dbt_5,desc)
Как реализовать выборку без лог. таблицы
Модераторы: m0p3e, edward_K, Модераторы
обращаю внимание, что если индекс по обеим датам, то ORDER BY не нужен вобще, единственно, что нужно установить порядок индекса или сразу в атрибутах указатьДобавить нужно "opt_dbt_77=date_change+date_dolg," ?
Но это всеравно не решит проблемы "нет индекса", но попробую с радостью - делать нечего...
opt_dbt_77=date_change+date_dolg (desc)
-
- Постоянный обитатель
- Сообщения: 104
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Moscow
- Контактная информация:
coolibin
ок, попробую пересоздать таблицу с добавлением такого индекса.
edward_K
Ваша конструкция заработала, только без "dbt." впереди.
А можно ли в _loop как-то указать чтоб цикл был в обратном порядке?
Индекс во вьюхе указать не могу - выскакивает ошибка "нет индекса" - об этом я уже писал.
ок, попробую пересоздать таблицу с добавлением такого индекса.
edward_K
Ваша конструкция заработала, только без "dbt." впереди.
Код: Выделить всё
_loop opt_dbt ordered by index opt_dbt_5
Индекс во вьюхе указать не могу - выскакивает ошибка "нет индекса" - об этом я уже писал.
-
- Постоянный гость
- Сообщения: 60
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Казахстан, Экибастуз, АО "ЕЭК"
- Контактная информация:
АРД я не знаю. А в випе примерно так:
Table struct SelectedOrgs
( NRec_Org : comp, // Организация
NRec_Dog : comp, // Договор
Nrec_DO : comp, // Документ основание
DO_Date : date, // Дата Док. Основания
SUM_SAL : double, // Сумма
Por_raschet : string, // Порядок расчёта
MC_USL : string // За что
)
with Index
( Y = NRec_Org (Unique), X=DO_Date(Desc) );
.........
_Loop по базе с выборкой NrecOrg
{......
if ( modifier GetFirst SelectedOrgs
Where (( NrecOrg == SelectedOrgs.NRec_Org )) = tsOk) then
{ SelectedOrgs.SUM_SAL := SelectedOrgs.SUM_SAL + MakeCrSum; SelectedOrgs.NRec_Dog:= NrecDog;
Update current SelectedOrgs; }
else
{ ClearBuffer( #SelectedOrgs );
SelectedOrgs.NRec_Org := NrecOrg;
SelectedOrgs.NRec_Dog := NrecDog;
SelectedOrgs.SUM_SAL := MakeCrSum;
SelectedOrgs.Nrec_DO := NrecDO;
SelectedOrgs.DO_Date := DateDo;
SelectedOrgs.MC_USL :='';
SelectedOrgs.Por_raschet:='';
insert current SelectedOrgs;
} // end ELSE
}
Насчёт нехватки ОЗУ можно не переживать - Галактика как мне кажется использует файл подкачки если ОЗУ не хватает.
Table struct SelectedOrgs
( NRec_Org : comp, // Организация
NRec_Dog : comp, // Договор
Nrec_DO : comp, // Документ основание
DO_Date : date, // Дата Док. Основания
SUM_SAL : double, // Сумма
Por_raschet : string, // Порядок расчёта
MC_USL : string // За что
)
with Index
( Y = NRec_Org (Unique), X=DO_Date(Desc) );
.........
_Loop по базе с выборкой NrecOrg
{......
if ( modifier GetFirst SelectedOrgs
Where (( NrecOrg == SelectedOrgs.NRec_Org )) = tsOk) then
{ SelectedOrgs.SUM_SAL := SelectedOrgs.SUM_SAL + MakeCrSum; SelectedOrgs.NRec_Dog:= NrecDog;
Update current SelectedOrgs; }
else
{ ClearBuffer( #SelectedOrgs );
SelectedOrgs.NRec_Org := NrecOrg;
SelectedOrgs.NRec_Dog := NrecDog;
SelectedOrgs.SUM_SAL := MakeCrSum;
SelectedOrgs.Nrec_DO := NrecDO;
SelectedOrgs.DO_Date := DateDo;
SelectedOrgs.MC_USL :='';
SelectedOrgs.Por_raschet:='';
insert current SelectedOrgs;
} // end ELSE
}
Насчёт нехватки ОЗУ можно не переживать - Галактика как мне кажется использует файл подкачки если ОЗУ не хватает.