× 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.



Hi All

I am getting inconsistent results from a prepared statement with
the LIKE predicate.  I'm wondering if the system is caching
the results of a previous statement or something.

The servlet is using a DataSource for connection pooling.
If I set the selection field values to all underscores I expect
to get all of the records back.  Sometimes I do and sometimes
I don't. It seems like if I send the servlet some values that is not
in the file the next time I send all underscores it doesn't return
any records.

I've got the basic same servlet running under Tomcat on
the AS/400 and it works consistently. The Tomcat version
is not using connection pooling.

Below are two pertinent snippets:  (Please don't yell at me
for using A.*. The file has 72 fields in it and I didn't have the energy
to specify all of them.)

1.  Here is the statement logic:

      PreparedStatement ps3 = connection.prepareStatement(SQL_SELECT);
      int recordCount = 0;
      String hlcUsec = request.getParameter("hlcUsec");
      String hldUsec = request.getParameter("hldUsec");
      if (hlcUsec == null) hlcUsec = "______";
      if (hldUsec == null) hldUsec = "______";
      pw.println("<!-- HLC USEC: " + hlcUsec + " HLD USEC: " + hldUsec +
"-->\n");
      ps3.setString(1,userProfile);
      ps3.setString(2,hlcUsec);
      ps3.setString(3,hldUsec);
      ResultSet rs = ps3.executeQuery();
      while (rs.next() && (recordCount < 96))
        {
//         format the records and put in a HTML table row
        }

2. Here is the statement:

private final static String SQL_SELECT =
    "SELECT A.*, " +
    "B.NOMEN, C.DIRCNAME " +
    "FROM TMS.TMSPFM19 AS A " +
    "JOIN TMS.TMSPFM19A AS B " +
    "ON A.TOLLTYPE = B.TOLLTYPE " +
    "JOIN SOM.SOMPFLM000 AS C " +
    "ON A.PHONENUM = C.PHONENUM AND " +
    "   A.ORDRNMBR = C.ORDRNMBR " +
    "WHERE A.TOLLTYPE IN " +
    "(SELECT TOLLTYPE FROM TMS.TMSPFM19B WHERE USRPRF = ?) AND " +
    "A.HLCUSEC LIKE ? AND A.HLDUSEC LIKE ? " +
    "ORDER BY A.MINTOTAL DESC " +
    "FOR READ ONLY " +
    "OPTIMIZE FOR 96 ROWS";

This is running on an AS/400 9406-2175-832MB OS/400 V4R5M0 Websphere 3.5.3

Thanx, PLA
/
/ Patrick L Archibald
/ http://HomeTelco.com/pla/
/


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

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.