[reactor-users] Group where statements using parenthesis

1 view
Skip to first unread message

ol...@ansit.no

unread,
Apr 20, 2010, 4:09:06 AM4/20/10
to Reactor
I'm not able to group the OR statements in my query the way I want.
What am I doing wrong?

This is what I want the generated SQL to look like:
WHERE ( "V_SEARCH_MELDING"."BGM" = ? OR"V_SEARCH_MELDING"."RFF"
= ? ) AND "V_SEARCH_MELDING"."V_DATE" BETWEEN ? AND ? ORDER BY
"V_SEARCH_MELDING"."V_DATE" DESC

This is what gets generated:
WHERE "V_SEARCH_MELDING"."BGM" = ? OR ( "V_SEARCH_MELDING"."RFF"
= ? ) AND "V_SEARCH_MELDING"."V_DATE" BETWEEN ? AND ? ORDER BY
"V_SEARCH_MELDING"."V_DATE" DESC

<if condition="attributes.bgm neq ''">
<true>
<invoke object="qryVsm"
methodcall="getWhere()" returnvariable="whereBgm" />
<invoke object="whereBgm"
methodcall="IsEqual('V_SEARCH_MELDING','Bgm',#trim(attributes.bgm)#)" /
>
<invoke object="whereBgm"
methodcall="setMode('or')" />
<invoke object="whereBgm"
methodcall="createWhere()" returnvariable="whereRff" />
<invoke object="whereRff"
methodcall="IsEqual('V_SEARCH_MELDING','Rff',#trim(attributes.bgm)#)" /
>
<invoke object="wherebgm"
methodcall="addWhere(whereRff)" />
<invoke object="whereBgm"
methodcall="setMode('and')" />
</true>
</if>

--
You received this message because you are subscribed to the Google Groups "Reactor" group.
To post to this group, send email to reacto...@googlegroups.com.
To unsubscribe from this group, send email to reactor-user...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/reactor-users?hl=en.

Tom Chiverton

unread,
Apr 20, 2010, 4:33:53 AM4/20/10
to reacto...@googlegroups.com
On Tuesday 20 Apr 2010, ol...@ansit.no wrote:
> I'm not able to group the OR statements in my query the way I want.
> What am I doing wrong?

Did you spot http://thefalken.livejournal.com/38511.html ?

For complicated queries, I think it's neater to write them as methods in your
Gateway classes, like this however :
http://trac.reactorframework.com/wiki/howDoIDoQueriesInGateways

--

Tom Chiverton
Developer

Tom.Ch...@halliwells.com
3 Hardman Square, Manchester, M3 3EB

****************************************************

This email is sent for and on behalf of Halliwells LLP.

Halliwells LLP is a limited liability partnership registered in England and Wales under registered number OC307980 whose registered office address is at Halliwells LLP, 3 Hardman Square, Spinningfields, Manchester, M3 3EB. A list of members is available for inspection at the registered office together with a list of those non members who are referred to as partners. We use the word “partner” to refer to a member of the LLP, or an employee or consultant with equivalent standing and qualifications. Regulated by the Solicitors Regulation Authority.

CONFIDENTIALITY

This email is intended only for the use of the addressee named above and may be confidential or legally privileged. If you are not the addressee you must not read it and must not use any information contained in nor copy it nor inform any person other than Halliwells LLP or the addressee of its existence or contents. If you have received this email in error please delete it and notify Halliwells LLP IT Department on 0870 365 2500.

For more information about Halliwells LLP visit
www.Halliwells.com.

Reply all
Reply to author
Forward
0 new messages