запрос в Support и в фейсе выдает разные результаты

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

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

Ответить
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

запрос в Support и в фейсе выдает разные результаты

Сообщение Johny »

В саппорте пишу:

select * from spobjacc
where
((objacct.nrec==spobjacc.cobjacct)) and
281474976712748=ObjAcct.cowner and
0=spobjacc.cobject;

Получаю как и требуется 3 строки (одну на первый Objacct и 2 на второй Objacct)

Пишу фейс:

interface copy;

create view as
select * from spobjacc
where
((objacct.nrec==spobjacc.cobjacct)) and
281474976712748=ObjAcct.cowner and
0=spobjacc.cobject;

browse spBr;
fields
nrec;
end;

end.

Получаю 2 строки а не три. То есть как бы вторая строка, привязанная ко второму Objacct обрубается.
Уже запарился варианты запроса перестраивать. Как будто какой-то фильтр левый встает.
В чем причина может быть?
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

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

create view as 
select * from ObjAcct,spobjacc
where 
((
  comp(281474976712748) == ObjAcct.cowner and
  objacct.nrec==spobjacc.cobjacct and
  comp(0) == spobjacc.cobject (noindex)
));
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Сообщение ecasoft »

Тогда уж лучше noindex не использовать.


create view as
select * from ObjAcct,spobjacc
where
((
comp(281474976712748) == ObjAcct.cowner and
objacct.nrec==spobjacc.cobjacct and
( comp(0) = spobjacc.cobject)
));
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

Сообщение Johny »

Вот почти такой вариант прокатил:

create view as
select * from spobjacc
where
281474976712748=ObjAcct.cowner and
objacct.nrec=spobjacc.cobjacct and
0=spobjacc.cobject;

остальные ковырял но безуспешно. Какая-то странная таблица.
В ней правда хитрость есть, она сама на себя ссылается, может из за этого какие-то баги
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Сообщение ecasoft »

Честно говоря не верю, что этот проходит, а два предыдущих не проходят. Такого просто не может быть. :) И в запросе указанном нет ссылок самих на себя...да и если бы и были то тоже никаких проблем.
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

Сообщение Johny »

И правильно делаешь что не веришь. Если быть совсем точным, то проходит вот этот:

create view as
select * from spobjacc
where
objacct.nrec=spobjacc.cobjacct and
0=spobjacc.cobject;

А вообще может ум за разум у меня зашел, но я потерял часов 8 пока вот до этого дошел (прогу переделать пришлось хорошо, по сравнению с начальным вариантом) Обидно, что это последний штрих уже был. :shock:
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
Ответить