[ http://issues.apache.org/jira/browse/IBATISNET-29?page=history ]
     
Gilles Bayon closed IBATISNET-29:
---------------------------------

     Assign To: Gilles Bayon
    Resolution: Won't Fix


It's not an issue, your SQL is incorrect, the generated command text for 
<select id="SelectOrderByDateDynamic"
        parameterClass="Hashtable"
        resultMap="lite-order-result-by-name">

        select * from Orders
        where 1=1
        <isNotEmpty prepend="AND" property="Foo"> 
        (Order_Date = '$Foo$') 
        </isNotEmpty> 
</select>       
is 
select * from Orders     where 1=1 AND (Order_Date = 15/02/2003 08:15:00)
which is incorrect
You need to add quote around $Foo$ as in 
<select id="SelectOrderByDateDynamic"
        parameterClass="Hashtable"
        resultMap="lite-order-result-by-name">

        select * from Orders
        where 1=1
        <isNotEmpty prepend="AND" property="Foo"> 
        (Order_Date = '$Foo$') 
        </isNotEmpty> 
</select>
and so you get
select * from Orders     
where 1=1 AND (Order_Date = '2003/02/15 08:15:00')
a valide SQL.

Cheers
-Gilles

> Pound signs not handled correctly when used in combination with $Foo$ syntax 
> and dynamic sql.
> ---------------------------------------------------------------------------------------------
>
>          Key: IBATISNET-29
>          URL: http://issues.apache.org/jira/browse/IBATISNET-29
>      Project: iBatis for .NET
>         Type: Bug
>     Versions: DataMapper 1.1
>  Environment: IBatisNet.DataMapper
> [assembly: AssemblyVersion("1.1.458")]
>     Reporter: Ron Grabowski
>     Assignee: Gilles Bayon

>
> When the following syntax is used:
>  ##$Foo$##
> and Foo is set via:
>  map["Foo"] = new DateTime(2005, 1, 2, 3, 4, 5);
> Ibatis seems to process the line correctly. I expect the following text to be 
> sent to the database:
>  #1/2/2005 3:04:05#
> The logs don't explicitly state that that text is being sent to the database 
> but the code seems to work correctly.
> When a dynamic sql block is used with the ##$Foo$## syntax, Ibatis 
> incorrectly throws a ProbeException because it tries to re-evaluate "1/2/2005 
> 3:04:05" as a key in the Hashtable. For example this snippet of text:
> (Concert.ConcertDate = ##$StartDate$##)
> <isNotEmpty prepend="AND" property="EndDate">
>  (Concert.ConcertDate = ##$EndDate$##)
> </isNotEmpty>
> Raises a ProbeException with the following error message: There is no Get 
> property named '1/2/2005 3' in class 'Hashtable'. The next character after 
> the 3 is a colon which Ibatis uses for inline parameters. It appears that 
> Ibatis is trying to re-evaluate what's between the dollar signs.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira

Reply via email to