| Název | Popis | Datový typ |
|---|---|---|
| ASelID | Char(10) | |
| AField | VarChar(50) | |
| AHideForOptimazation | Char(1) |
| Název | Popis | Datový typ |
|---|---|---|
| AResult | VarChar(8192) |
| Název | Popis | Třída |
|---|---|---|
| SYS$ConcatSelect | Pomocná 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 |
begin
if (:ASelID <> '') then begin
AResult = ' ( ';
Select AResult from SYS$CONCATSELECT('OBJ_ID', 'SELDAT where SEL_ID = ''' || :ASelID || '''') into :SQLConc;
if (:AHideForOptimazation in ('1', 'A')) then
AResult = AResult || :AField || ' || '''' in (' || :SQLConc || ')';
else
AResult = AResult || :AField || ' in (' || :SQLConc || ')';
--ID predchudcu
Select AResult from SYS$CONCATSELECT('distinct F.ID', 'SELDAT SLD join Firms F on F.Firm_ID = SLD.OBJ_ID where SLD.SEL_ID = ''' || :ASelID || ''' and F.Hidden = ''N''') into :SQLConc;
if (:AHideForOptimazation in ('1', 'A')) then
AResult = AResult || ' or ' || :AField || ' || '''' in (' || :SQLConc || ')';
else
AResult = AResult || ' or ' || :AField || ' in (' || :SQLConc || ')';
AResult = AResult || ' ) ';
end else
AResult = null;
suspend;
end;Generated by ABRA Software a.s. 27.10.2021 16:34:18