× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



"RPG400-L" <rpg400-l-bounces@xxxxxxxxxxxx> wrote on 01/25/2018 09:18:49
AM:
I am searching strings for SQL keywords and table names; these are
coming back from one of the ODBC hooks so I need to be quick. Is
there a means to search a string, after apply upper case function,
that works like matching how SQL IN works?

I really don’t want to resort to a select construct comparing in
order, instead trying to filter against an array or similar.


I wrote a service procedure that compares test against a
comma-separated list like the SQL IN operator does. I can't testify as to
the speed of it, though. Seems to work well for me.


*========================================================================*
* This procedure determines if a needle is found in a haystack, which is
*
* represented by a comma-separated list of possible matches. *

*========================================================================*
P GenUtl_InList B export
D PI n
D pNeedle 50a const varying(2)
D pHaystack 3000a const varying(2)

*------------------------------------------------------------------------*
D iHaystack s 3002a varying(2)
iHaystack = %trim(pHaystack); // make sure haystack is trimmed
iHaystack = %xlate( GenUtl_lower: GenUtl_UPPER: pHaystack );
if (%subst(iHaystack:1:1) <> ','); // if no starting separator
iHaystack = ',' + iHaystack; // put one there
endif;
if (%subst(iHaystack:%len(iHaystack):1) <> ','); // if no ending
separator
iHaystack += ','; // put one there
endif;
return (%scan( ','+%xlate(GenUtl_lower: GenUtl_UPPER: %trim(pNeedle))+
','
: iHaystack ) > *zero); // indicate if found

*------------------------------------------------------------------------*
P GenUtl_InList E

*========================================================================*


Sincerely,

Dave Clark

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.