Разница между select и GetFirst

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

Разница между select и GetFirst

Сообщение Nikos »

Добрый день! Нужна помощь.
Есть задача получить бух. справку закрытия счетов текущего месяца. Пишу:

select Plpor.* where ((
0 == REFTABLE.WACCOUNT
and 16 == REFTABLE.WMAIN
and 0 == REFTABLE.WSUB
and 9008 == REFTABLE.WTABLE1
and 4612012188596493196 == REFTABLE.CRECORD1
and REFTABLE.CRECORD2 /== PLPOR.NREC
and date(31,10,2007) == PLPOR.DATVIP (noindex)));

Все прекрасно работает, выдает нужную справку.
Но нужно то же самое сделать в vip. Если же пишу

GetFirst Plpor.* where ((
0 == REFTABLE.WACCOUNT
and 16 == REFTABLE.WMAIN
and 0 == REFTABLE.WSUB
and 9008 == REFTABLE.WTABLE1
and 4612012188596493196 == REFTABLE.CRECORD1
and REFTABLE.CRECORD2 /== PLPOR.NREC
and date(31,10,2007) == PLPOR.DATVIP (noindex)));

то не находит! Почему?
Max_Fin
На пенсии
Сообщения: 797
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г. Тюмень
Контактная информация:

Сообщение Max_Fin »

Во первых что такое GetFirst Plpor.*
Во вторых GetFirst может работать только с одной таблицей, в данном случае в where должно справа использоваться только PlPor

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

if GetFirst REFTABLE where //возможно не GetFirst?
((
0 == REFTABLE.WACCOUNT 
and 16 == REFTABLE.WMAIN 
and 0 == REFTABLE.WSUB 
and 9008 == REFTABLE.WTABLE1 
and 4612012188596493196 == REFTABLE.CRECORD1 
)) = tsOK
{
  //непонятно зачем date(31,10,2007) == PLPOR.DATVIP?
  if GetFirst PlPor where ((REFTABLE.CRECORD2 == PLPOR.NREC)) = tsOK
  {
    if date(31,10,2007) = PLPOR.DATVIP {}
  }
}
Жду выхода Вселенная 2.12!
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

либо вы к своему select добавляете в начало
create view v as select ...
и потом пишите
if v.getfirst=0 ...
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

Сообщение Nikos »

1. GetFirst Plpor.* это я, конечно, описался (уже здесь)
2. Что GetFirst может работать только с одной таблицей это я совсем забыл (а, может, и не знал вовсе...) - это и было моей главной ошибкой.
3. С create view сделал - все заработало.
Большое спасибо за консультации!
Ответить