Procedura-SYS$SQLTemplate2

Popis:
Pomocná stored procedura pro tvorbu dynamických dotazů - šablona pro výběr podřízených v tabulkách se stromovou strukturou

Parametry:

NázevPopisDatový typ
ASelIDChar(10)
AWithChildsChar(1)
ATreeTableVarChar(30)
AFieldVarChar(50)
AHideForOptimazationChar(1)

Návratové hodnoty:

NázevPopisDatový typ
AResultVarChar(8192)

Závislosti:

NázevPopisTřída
SYS$SQLTemplate1Pomocná stored procedura pro tvorbu dynamických dotazů - šablona pro připojení SELDAT tabulky do sekce FROMProcedures
SYS$ConcatSelectPomocná stored procedura pro tvorbu dynamických dotazů typu "field in (select dotaz)" . Pokud je položek v poddotazu víc jak 100, vrátí dotaz ve formě "field in (select dotaz)", jinak poddotaz provede a vrátí ve formě "field in (hodnoty SQL dotazu)".Procedures

Tělo:

begin
  if (:ASelID <> '') then begin
		Select AResult from SYS$SQLTemplate1(:ASelID, :AField, :AHideForOptimazation, 'N') into :AResult;
		--podrizene zaznamy
		AResult = ' ( ' || AResult;
		if (:AWithChilds in ('1', 'A')) then begin
		 Select AResult from SYS$CONCATSELECT('distinct TT.ID', 'SELDAT SLD join ' || :ATreeTable || ' TT on TT.Superior_ID = SLD.OBJ_ID where SLD.SEL_ID = ''' || :ASelID || '''') into :SQLConc;
		 if (:AHideForOptimazation in ('1', 'A')) then
			 AResult = AResult || ' or ' || :AField || ' ||'''' in (' || :SQLConc || ')';
		 else
			 AResult = AResult || ' or ' || :AField || ' in (' || :SQLConc || ')';
		end
  AResult = AResult || ' ) ';
 end else
   AResult = null;
  suspend;
end;

Generated by ABRA Software a.s. 27.10.2021 16:34:18