Tonal пишет:
sasha пишет:
а если через get_context, set_context?
А как это может помочь?
WITH RECURSIVE TR AS (
  SELECT T.*, 1 AS LEV FROM "Tree" T WHERE PARENT_ID IS NULL
  and RDB$SET_CONTEXT('USER_TRANSACTION', 'Level', 0);
  UNION ALL
SELECT T.*, TR.LEV + 1 AS LEV FROM "Tree" T, TR WHERE PARENT_ID = TR.ID AND TR.LEV < 1 and RDB$SET_CONTEXT('USER_TRANSACTION', 'Level', RDB$SET_CONTEXT('USER_TRANSACTION', 'Level') + 1) < 5
)
SELECT ID, LEV FROM TR
Ошибся чуток:
WITH RECURSIVE TR AS (
  SELECT T.*, 1 AS LEV FROM "Tree" T WHERE PARENT_ID IS NULL
  and RDB$SET_CONTEXT('USER_TRANSACTION', 'Level', 0);
  UNION ALL
  SELECT T.*, TR.LEV + 1 AS LEV FROM "Tree" T, TR WHERE PARENT_ID =
TR.ID AND TR.LEV < 1
  and (
RDB$GET_CONTEXT('USER_TRANSACTION', 'Level') < 5 and RDB$SET_CONTEXT('USER_TRANSACTION', 'Level', RDB$GET_CONTEXT('USER_TRANSACTION', 'Level') + 1))
SELECT ID, LEV FROM TR

Ответить