Jsem rád, že se rsc_cz chytil … za můj dotaz stejně může jen on…
Seznam načítám ze souboru lovim.ggt (GeoKuk). Ten jsem dosud přetavil do reg. výrazu (RE) a pak jsem použil něco jako:
Where=g_regex( $all_lines, Name ) OR g_regex( $all_lines, Code )
Když jsem ale GSAK nakrmil trochu nestandardními WPT (např. typu Czech Geodetic Point), tak mě RE díky hladovosti, začal vybírat body navíc, které jsem v lovim.ggt neměl.
Napadlo mě tedy, že bych upravil WHERE tak, aby hledal opravdu podle přesných jmen/kodů WPT, tj. chtěl jsem použít to Where=Name IN.
Můj problém je ten, že nevím jak sestavit syntakticky správný řetězec, který by obsahoval více hodnot, a který by šel použit proto Where=Name IN ($s).
Možná jsem se na to IN příliš upnul, ale používám to na jiných platformách. Kdyby měl někdo jiný nápad, tak se zlobit nebudu
Problem je, ze prikaz IN ( xx, yy) se vnitrne interpretuje jako seznam parametru oddelenych carkou. Kdyz to predavas v jedne promenne, tak je to stale jeden parametr, bez ohledu na jeho obsah.
Mozna bys to obesel cyklem, v kterem budes volat jen jednu promennou a pro dany vyber si nastavis $d_MacroFlag=TRUE a potom na konci vseho si nastavis Mfilter If=$d_MacroFlag
mam nacteny GC kod, ted ho najit v SQL a nastavit priznak
MFILTER Expression=($d_CODE =$GCcode)
IF $_FilterCount>0
USERFLAG Type=SET Range=FILTER
ELSE
# pokud se nenalezl v databazi, vypsat
$numGCcodeDNF= $numGCcodeDNF + 1
Pause Msg="tento kod ze seznamu neni v databazi: $GCcode"
ENDIF
EndRead
CANCELFILTER
MFILTER Expression=(USERFLAG =true)