Focal Point
[CLOSED] Case sensitive search-db issue

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/9307043995

February 25, 2011, 12:20 PM
cevans
[CLOSED] Case sensitive search-db issue
It's been quite some time since I have been working regularly in WebFOCUS and I have come across an issue I just cannot solve:

Our database contains mixed characters. I am building a report to search on some alphanumeric fields. I just cannot, for the life of me, figure out how to make the searches not be case sensitive.

My idea was to define a field (A concat field of several fields which use letters and numbers) using UPCASE and then convert what the user inputs to uppercase as well.

1. The UPCASE is not even working. Is this because there are numbers in the data as well?

2. Am I even going about solving the case sensitive issue the right way with the conversions?

In sum, how can I retrieve data when a user enters 'widget' in the search but the database contains 'Widget'?

Thank you.

This message has been edited. Last edited by: Kerry,
February 25, 2011, 12:35 PM
Tom Flynn
Here's 1 example, LOCASE could be another, other's may have different examples:

 
-SET &ECHO=ALL;
-SET &VALUE1   = 'widget';
-SET &VALUE2   = '999widget999';
-SET &VAL_LEN1 = &VALUE1.LENGTH;
-SET &VAL_LEN2 = &VALUE2.LENGTH;
-SET &FMT1     = 'A' | &VAL_LEN1;
-SET &FMT2     = 'A' | &VAL_LEN2;
DEFINE FILE CAR
  NEW_COL01/&FMT1 WITH CAR = 'Widget';
  NEW_COL02/&FMT1 = '&VALUE1.EVAL';
  NEW_COL03/&FMT1 = UPCASE(&VAL_LEN1,NEW_COL01,'A&VAL_LEN1');
  NEW_COL04/&FMT1 = UPCASE(&VAL_LEN1.EVAL, '&VALUE1.EVAL', 'A&VAL_LEN1');
  NEW_COL05/&FMT2 WITH CAR = '999widget999';
  NEW_COL06/&FMT2 = '&VALUE2.EVAL';
  NEW_COL07/&FMT2 = UPCASE(&VAL_LEN2,NEW_COL06,'A&VAL_LEN2');
  NEW_COL08/&FMT2 = UPCASE(&VAL_LEN2.EVAL, '&VALUE2.EVAL', 'A&VAL_LEN2');
END
TABLE FILE CAR
SUM
   NEW_COL01
   NEW_COL02
   NEW_COL03
   NEW_COL04
   NEW_COL05
   NEW_COL06
   NEW_COL07
   NEW_COL08
     COMPUTE FLAG1/A1 = IF COUNTRY   EQ 'ENGLAND' THEN 'N' ELSE 
	               IF NEW_COL03 EQ NEW_COL04 THEN 'Y' ELSE 'N';
     COMPUTE FLAG2/A1 = IF COUNTRY   EQ 'JAPAN'   THEN 'N' ELSE
	               IF NEW_COL07 EQ NEW_COL08 THEN 'Y' ELSE 'N';
  BY COUNTRY
END
-EXIT

This message has been edited. Last edited by: Tom Flynn,


Tom Flynn
WebFOCUS 8.1.05 - PROD/QA
DB2 - AS400 - Mainframe