begin
if (:ACaseSensitive = 'N') then
AExpression = Upper(:AExpression Collate PXW_CSY);
if ((ADateFrom <> 0) and (ADateTo <> 0)) then begin
for
select CE.ID, CC.ID
from CalcExpressions CE
left join CalcCharts CC on CC.ID = CE.Parent_ID
where
(
((select outExpr from
ManageUpperForBlob(CE.Expression, :ACaseSensitive)) like '%' || :AExpression || '%' ESCAPE '~')
or
((select outExpr from
ManageUpperForBlob(CE.Condition, :ACaseSensitive)) like '%' || :AExpression || '%' ESCAPE '~')
or
((select outExpr from
ManageUpperForBlob(CE.CheckExpression, :ACaseSensitive)) like '%' || :AExpression || '%' ESCAPE '~')
) and
CE.ID in (select ID from
GetCalcExpressionsByDate(CE.Parent_ID, :ADateFrom, :ADateTo)
)
into :Expr_ID, :Chart_ID
do begin
suspend;
end
end else begin
/* Pokud není zadáno časové omezení, nebereme ohled na období platnosti výrazu. */
for
select CE.ID, CC.ID
from CalcExpressions CE
left join CalcCharts CC on CC.ID = CE.Parent_ID
where
((select outExpr from
ManageUpperForBlob(CE.Expression, :ACaseSensitive)) like '%' || :AExpression || '%' ESCAPE '~')
or
((select outExpr from
ManageUpperForBlob(CE.Condition, :ACaseSensitive)) like '%' || :AExpression || '%' ESCAPE '~')
or
((select outExpr from
ManageUpperForBlob(CE.CheckExpression, :ACaseSensitive)) like '%' || :AExpression || '%' ESCAPE '~')
into :Expr_ID, :Chart_ID
do begin
suspend;
end
end
end;