i'm sorry i forget that ojb manipulates the criteria in addLike. imo it would be the best to pass the criteria withou any modifications to the dbms. what do you think about this ?
jakob
Nase, Paul R. wrote:
Adding a like parameter as the link suggests (addLike("attribute","%[%]%")) will return any records where the field matches <anytexthere>[<anytexthere>]<anytexthere> (i.e. ABC[DEF]XYZ matches, ABC[XYZ does not).
The only way I have been able to get an sql query to work manually is to use a statement similar to: select * from sometable where description like '%\%%' ESCAPE '\' NOTE: finds all records where the description contains the '%' character somewhere.
The first problem with what OJB is doing when I add a like criteria, is strip off the escape character. They do this because they are only allowing a '*', '\' or a '?' to be 'escaped', so they assume if you are using the '\' character at all, it is simply removed. Technically, they aren't really escaping anything, they are simply allowing the *, ? and every other \ to go through as is and not converting them to their respective % and _ characters. What OJB doesn't do when escaping their '*' and '?' - is check to make sure the next character is actually a '*' or '?'. OJB also doesn't add the ESCAPE parameter that works with the like clause. They could check the value for the like operation for any '\' character, and simply append " ESCAPE '\' " if they find one.
So, unless I am missing something, I think the ojb support for 'like' is close, but not quite complete. There are basically two characters you simply cannot search for in a string, '%' and '_'.
Paul
-----Original Message-----
From: Jakob Braeuchi [mailto:[EMAIL PROTECTED] Sent: Thursday, February 19, 2004 12:56 PM
To: OJB Users List
Subject: Re: Query with criteria - like using '%' or '_'
hi paul,
check out this link:
http://nick.blogs.com/blog/2003/08/_in_sql_stateme.html
jakob
Nase, Paul R. wrote:
Thanks Jakob,
But I want to find objects that contain the actual '%' character, I don't want to search for objects using the '%' as the one or more wildcard.
The addLike("attribute","P%") will return all records starting with the letter 'P'. So this query will search using the '%' as the normal sql wildcard, it won't query for items that actually contain the '%' character.
Paul
-----Original Message----- From: Jakob Braeuchi [mailto:[EMAIL PROTECTED] Sent: Thursday, February 19, 2004 12:29 PM To: OJB Users List Subject: Re: Query with criteria - like using '%' or '_'
hi paul,
use addLike("your_attribute","P%")
hth jakob
Nase, Paul R. wrote:
I would like to perform a query where a description could have a '%' or an '_'. Is this possible using QueryByCriteria?
Example: ID DESCRIPTION ------- -------------------- 10000 40% Member Discount 10001 Online Discount
I'd like to be able to search using a like statement similar to: "Where Description like '%\%%' ESCAPE '\'"
The current implementation will just strip off the escape character, resulting in passing my literal '\%' being pass as a wildcard.
Thanks in advance.
Paul Nase
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]