PGM PARM(&name)
DCL &NAME *CHAR 35
OPNQRYF FILE(MyFIle) QRYSLT('Name *CT "'|< &NAME |< '"') +
OPTION(*INP) KEYFLD((Name *ASCEND))
ENDPGM
This static SQL statement performs a "contains" search:
SELECT fld1, fld2, fld2
FROM table1
WHERE fld1 LIKE '%Tom%'
Matches "Tom Jones", "Jim Tomson", "Ralph O'Tomas".
PGM PARM(&MYSELECT)
DCL VAR(&MYSELECT) TYPE(*CHAR) LEN(30)
DCL VAR(&SELECT) TYPE(*CHAR) LEN(50)
CHGVAR VAR(&SELECT) VALUE('*' |< &MYSELECT |< '*')
CLOF OPNID(MYFILE)
MONMSG MSGID(CPF0000)
DLTOVR FILE(MYFILE)
MONMSG MSGID(CPF0000)
OVRDBF FILE(MYFILE) SECURE(*YES) SHARE(*YES)
OPNQRYF FILE((EDIOHD)) QRYSLT('charfld = %WLDCRD(''' +
|< &SELECT |< '''')
ENDPGM
but i don't know what are your performance requirements so this solution is maybe simple, but not that good in terms of performance