powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Рекурсия в TfrxODBCQuery
10 сообщений из 10, страница 1 из 1
Рекурсия в TfrxODBCQuery
    #38668579
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую.
Может кто сталкивался с ошибкой возникающей в процессе выполнения запроса.
Как забороть ?

Версия FastReport 4.13.1

Запрос к Microsoft SQL Server 2008 (SP2) - 10.0.4000.0 (X64) Sep 16 2010 19:43:16 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.0 <X64> (Build 6002: Service Pack 2)

типа
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
; with Q as
(
select ...
from 
)

, CTE (<fields>) AS
(
	SELECT ...
	FROM Q
	
	UNION ALL
	
	SELECT ...
	FROM Q AS D
		JOIN CTE ON C.ID = D.PAR
	where C.ID <> 0
)

SELECT  <fields>
FROM CTE
ORDER BY ...
...
Рейтинг: 0 / 0
Рекурсия в TfrxODBCQuery
    #38668580
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Рекурсия в TfrxODBCQuery
    #38668600
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_human,

а в SQL Management Studio нормально отрабатывает?
...
Рейтинг: 0 / 0
Рекурсия в TfrxODBCQuery
    #38668605
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user89,
да
...
Рейтинг: 0 / 0
Рекурсия в TfrxODBCQuery
    #38668607
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_humanвыполнения запроса
update: запроса в компоненте TfrxODBCQuery.
...
Рейтинг: 0 / 0
Рекурсия в TfrxODBCQuery
    #38668746
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_human,

если в SQL Studio нормально отрабатывает, то надо методом тыка...
- запрос обернуть в хранимую процедуру и вызывать из FastReport уже хранимую процедуру
- вместо TfrxODBCQuery попробовать что-то вроде ADOQuery
- в соединении с базой использовать другого поставщика ( Microsoft OLE DB Provider for SQL Server или SQL Native Client )
...
Рейтинг: 0 / 0
Рекурсия в TfrxODBCQuery
    #38668762
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user89- вместо TfrxODBCQuery попробовать что-то вроде ADOQuery
SQL Native Client )
Такой возможности нет.
user89- в соединении с базой использовать другого поставщика ( Microsoft OLE DB Provider for SQL Server или SQL Native Client )
это я попробовать не могу. Т.к. в клиентское ПО встроенный FastReport и используется соединение клиента. К которому я не имею отношения.
user89- запрос обернуть в хранимую процедуру и вызывать из FastReport уже хранимую процедуру

Это единственное решение до которого могу дотянутся, но все же. Хочется знать причину. Т.к. FastReport не выполняет запросы. Это делает сервер. В обычном батче нет ограничения на использование рекурсивного CTE..
...
Рейтинг: 0 / 0
Рекурсия в TfrxODBCQuery
    #38668958
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте еще в самый конец, добавить option (maxrecursion 0)
Код: sql
1.
2.
3.
4.
5.
6.
7.
;with CTE (<fields>) AS (
  SELECT ...  FROM Q
)
SELECT  <fields>
FROM CTE
ORDER BY ...
option (maxrecursion 0)



_humanТ.к. в клиентское ПО встроенный FastReport и используется соединение клиента Наша CRM-система тоже использует какое-то свое соединение и не понимает много SQL-конструкций. Там правда встроен Crystal Reports (но не суть), в общем пользуемся Reporting Service (он входит в поставку SQL сервера)
Плюсы:
это Web-страница, которую можно вызывать из любой точки где есть Интернет

мало мучений с итогами, группировками, сводными таблицами (матрица pivot)

возможность экспорта в Excel, PDF и т.д.

нет ограничений на SQL-конструкции

Минусы:

весьма глючный (Microsoft всё ж )

частенько тормоза при раскрытии узлов таблицы

нельзя формулы в Excel, нельзя настроить внешний вид параметров отчета и еще куча ограничений, уже не вспомню...

FastReport лучше Microsoft Reporting-a, но народ хочет получать данные, за пределами локальной сети офиса, поэтому юзаем репортинг.
...
Рейтинг: 0 / 0
Рекурсия в TfrxODBCQuery
    #38668981
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user89,
option (maxrecursion 0) не помог.
FastReport 5.0.4 - те же грабли.
Собсна ошибка.
S1106: [Microsoft][ODBC SQL Server Driver] Fetch type out of range

насчет Reporting Service vs FastReport полностью согласен.
FastReport по своему хорош, но все таки Reporting Service сильнее за счет Web-страниц.
...
Рейтинг: 0 / 0
Рекурсия в TfrxODBCQuery
    #38668983
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил костылями через рекурсию в коде FastRepot - pascalscript
Получаем исходный денные.
Копируем во временную табличку TfrxTmpDbTable.
Рекурсивная процедура сортирует записи в табличке.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Рекурсия в TfrxODBCQuery
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]