Roy,

If you grab the latest source from SVN, you can browse the various
DataMapper NUnit tests to see examples of various dynamic SQL statements. 
Here's one example from DynamicAccount.xml:

<statement id="ComplexDynamicStatement"
        cacheModel="account-cache"
        resultClass="Account"
        parameterClass="Account">
        select
        Account_ID                      as Id,
        Account_FirstName       as FirstName,
        Account_LastName        as LastName,
        Account_Email           as EmailAddress
        from Accounts
        <dynamic prepend="WHERE">
                <isNotNull prepend="AND" property="FirstName">
                        (Account_FirstName = #FirstName#
                        <isNotNull prepend="OR" property="LastName">
                        Account_LastName = #LastName#
                        </isNotNull>
                        )
                </isNotNull>
                <isNotNull prepend="AND" property="EmailAddress">
                        Account_Email like #EmailAddress#
                </isNotNull>
                <isGreaterThan prepend="AND" property="Id" compareValue="0">
                        Account_ID = #Id#
                </isGreaterThan>
        </dynamic>
        order by Account_LastName
</statement>

Hope this helps!

Roberto



On Thu, March 17, 2005 5:31, roy astronomia said:
> Team IBatis,
>
> i am a newbee in ibatis framework and i want to use ibatis framework on a
> .net project. i would like to know how can i have a dynamic call of select
> queries with varying number of where conditions. I am using this query for
> searching that can require varying number of where criterias such as
> CustomerID, LastName, FirstName and City. User can fill up all criterias
> but the can leave it blank to, so there will be a dynamic where clause.
> Currently this is my code. How can i  write a where clause that can have
> dynamic fields? Also there would be a problem with the insertion of AND/OR
> Clause
>
> <select id="SelectCustFilterByName" resultMap="SelectResult"
> parameterClass="Customer">
>  SELECT CustomerID, LastName FROM Customers
>  <dynamic prepend="WHERE">
>   <isParameterPresent>
>    LastName LIKE #value#
>   </isParameterPresent>
>  </dynamic>
> </select>
>
>
> thanks in advance
> Roy
>
>
>
>
> ---------------------------------
> Do you Yahoo!?
>  Yahoo! Mail - now with 250MB free storage. Learn more.

Reply via email to