Наши преимущества

сложный запрос SQL Server в FastReport 4

demav

Турист
Credits
0
Есть такая проблема.
В FastReport 4 в компоненте TfrxADOQuery прописываю "сложный" запрос SQL Server типа такого (это пример конструкции, а не сам запрос):

DECLARE @ID INT
SET @ID = :id

SELECT
CASE WHEN 1 THEN 1
ELSE
CASE WHEN @ID = 2 THEN 2 ELSE 3 END
END

Сам запрос работает правильно - проверял в Enterprise Manager.
Но в FR не работает - в датасете пустой перечень полей. Когда убираю case (второй - вложенный) и DECLARE, то работает.

Вопрос - как можно в TfrxADOQuery выполнить такой "сложный" запрос?

P.S. знаю, что запрос можно перенести в хранимую процедуру. Но не хочется - так для каждого отчета придется делать свою ХП.
 
Последнее редактирование модератором:
А откуда уверенность, что FastReport поддерживает в запросах DECLARE и вложенный CASE, то есть, что через ADO они правильно передаются на сервер?
 
А откуда уверенность, что FastReport поддерживает в запросах DECLARE и вложенный CASE, то есть, что через ADO они правильно передаются на сервер?

Уверенности, конечно, нет :)
Но обычный TADOQuery вполне нормально справляется с таким запросом.

Кстати, на заметку, если в запросе FastReport убрать вложенный CASE, то запрос работает.
 
FastReport нормально обрабатывает такие запросы

Добавлено через 55 секунд
Наверное проще было бы воспользоваться SQL Profiler и посмотреть что передается в SQL
 
Последнее редактирование модератором:
А причем тут фастрепорт
Он не препроцессор запросов. Максимум что он может сделать так пробиндить значения а какой запрос ему абсолютно параллельно!
Смотрите в сторону того что у Вас работает с БД и какие настроички
 
Верх