Why can't you use sql parameters?

WHERE SDEPTHR.JOBNAME #bindEqual($val);

and then when you execute the query, update the parameter map with key:"val" 
and value: "Test_*@#*"?

Robert

On May 16, 2011, at 5/163:35 PM , Laurent Marchal wrote:

> Hi,
> 
>    I am using a simple SQLTemplate select query but it fails because of 
> special charachters :
> 
> SELECT * FROM SDEPTHR  INNER JOIN THRESH ON SDEPTHR.DEPTHRID=THRESH.THRESHID  
> WHERE SDEPTHR.JOBNAME = 'Test_*@\#*'
> 
> Error returned :
> [v.3.0.1 Aug 25 2010 19:58:47] Error parsing template 'SELECT * FROM SDEPTHR  
> INNER JOIN THRESH ON SDEPTHR.DEPTHRID=THRESH.THRESHID  WHERE SDEPTHR.JOBNAME 
> = 'Test_*@\#*'' : Lexical error: 
> org.apache.velocity.runtime.parser.TokenMgrError: Lexical error at line 1, 
> column 115.  Encountered: <EOF> after : ""
> 
> It looks like the '#*' is the problem but I can't find a way to properly 
> escape those characters 
> <http://velocity.apache.org/engine/releases/velocity-1.5/user-guide.html#stringliterals>.
>  I know using the SQLTemplate parameters would solve this problem but I can't 
> do that.
> Is there a way to tell cayenne to not parse the query with velocity or to 
> escape properly the query ?
> 
> Thank you.
> Laurent.

Reply via email to