ХП возвращает разные данные в дебаге и при выполнении

Циунчик Алексей
Дата: 06.10.2005 12:51:11
Ребята не могу понять что за глюк, во время дебага в IBExpert - возвращается один набор данных, а при выполнении ХП с теми же параметрами другой. Причём правильный набор выходит при дебаге.. Такое ощущение что процедура после suspend; просто прекращает работу ... Не могу понять что это за беда такая
Мимопроходящий
Дата: 06.10.2005 12:53:43

Привет, Циунчик!
Ты пишешь:

Циунчик
ЦА> Ребята не могу понять что за глюк, во время дебага в IBExpert - возвращается один набор данных,
ЦА> а при выполнении ХП с теми же параметрами другой. Причём правильный набор выходит при дебаге..
ЦА> Такое ощущение что процедура после suspend; просто прекращает работу ...
ЦА> Не могу понять что это за беда такая
У IB/FB нет средств для отладки.
Аминь.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.3

kdv
Дата: 06.10.2005 13:14:09
1. обнови IBExpert
2. обратись к автору IBExpert
3. если IBE в отладке процедуры выдает одно, а сервер - другое, значит прав СЕРВЕР.

IBE отлаживает процедуры путем банальной имитации их выполнения через отдельные операторы, которые он выколупнул из процедуры, с эмуляцией for select и прочих вещей. Чаще всего при отладке процедур в IBE лезут косяки с значениями в числовых типах данных.
Sash*
Дата: 06.10.2005 13:30:42
реконект поможет в 70% случаев
Мимопроходящий
Дата: 06.10.2005 13:31:29

Привет, Sash*!
Ты пишешь:

Sash*
S> реконект поможет в 70% случаев
Кому?

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.3

Циунчик Алексей
Дата: 06.10.2005 13:31:47
select MO,TU,WE,TH,FR,SA,SU from time_table where
      time_table.start_date =
      (select max(start_date) from time_table t1
       where t1.routes_id = :id_route
       and t1.start_date <= :RouteDepDate)
      and time_table.routes_id = :id_route
Именно в этом месте в дебагере выходит не пустой результат при выполнении запроса отдельно, не в контексте процедуры не пустой... А в контексте процедуры - пустой ума не приложу в чём дело...

Кстати даже без учёта дебагера... Почему Сервер на один и тот же запрос, с одними и теми же параметрами возвращает разные результаты !!!!
hvlad
Дата: 06.10.2005 13:42:07
Циунчик Алексей
Почему Сервер на один и тот же запрос, с одними и теми же параметрами возвращает разные результаты !!!!
Значит это не один и тот же запрос или не с одними и теми же параметрами
Amris Mirddin
Дата: 06.10.2005 13:43:36
Потому что версию сервера не указывать в вопросе - хамство. Старый баг с параметрами и в запросе и в подзапросе. Что-то там правили, до конца ли исправили и не завязано ли на параметр oldparametersordering в конфиге (это всё если речь про FB) - не помню. Вот так должно работать везде:

select T1.MO,T1.TU,T1.WE,T1.TH,T1.FR,T1.SA,T1.SU
 from time_table T1
 where time_table.routes_id = :id_route
      And T1.start_date <= :RouteDepDate
      And T1.start_date =
      (select max(start_date) from time_table t2
       where t2.routes_id =  T1.routes_id)

______________________________________
Cоздавать БД надо для того чтобы любой человек не знающий SQL мог пользоваться ею.
Не моё. Честно украденный перл.
Циунчик Алексей
Дата: 06.10.2005 13:51:26
Проблемма решена следующим образом
      select cast(max(start_date) as DATE)
         from time_table
          where time_table.routes_id = :id_routes
            and time_table.start_date <= :RouteDepDate
      into :tmpdate;
      select MO,TU,WE,TH,FR,SA,SU from time_table where
      time_table.start_date = :tmpdate
      and time_table.routes_id = :id_routes
      into
      :MO,:TU,:WE,:TH,:FR,:SA,:SU ;

т.е просто введением новой переменной

Почему не работало в одномзапросе не знаю, мне кажется это какие-то заморочки связанные с DATE и DATETIME, но это только предположения .. кто сможет объяснить please welcome.
Циунчик Алексей
Дата: 06.10.2005 13:54:31
Amris Mirddin
Потому что версию сервера не указывать в вопросе - хамство.


Это не хамство, я просто очень спешил .. исправить надо было очень быстро, посему и забыл указать, если вас это обидело уважаемый, то прошу прощения...

А Сервер у меня IB 7.1