Procedura-SYS$SQLTemplate1

Popis:
Pomocná stored procedura pro tvorbu dynamických dotazů - šablona pro připojení SELDAT tabulky do sekce FROM

Parametry:

NázevPopisDatový typ
ASelIDChar(10)
AFieldVarChar(50)
AHideForOptimazationChar(1)
APutToFromChar(1)

Návratové hodnoty:

NázevPopisDatový typ
AResultVarChar(8192)

Závislosti:

NázevPopisTřída
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
    if (:APutToFrom in ('1', 'A')) then begin --to :ASelID pouzivam i jako cast ALIAS pro SELDAT, kterych muze ve from byt vic
		  SQLSeldatAlias = 'Sld' || ib_string_replace(ASelID, '~', 'X');
      AResult = ' join Seldat ' || :SQLSeldatAlias || ' on ' || :SQLSeldatAlias || '.SEL_ID = ''' || :ASelID || ''' and ' || :SQLSeldatAlias || '.OBJ_ID = ' || AField;
    end else begin	
			Select AResult from SYS$CONCATSELECT('OBJ_ID', 'SELDAT where SEL_ID = ''' || :ASelID || '''') into :SQLConc;
			if (:AHideForOptimazation in ('1', 'A')) then
				AResult = :AField || ' || '''' in (' || :SQLConc || ')';
			else
				AResult = :AField || ' in (' || :SQLConc || ')';
		end
  end else
    AResult = null;
  suspend;
end;

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