| Tom Chiverton ( @ 2006-09-25 18:47:00 |
From On:
Or, to put it another way, how can I put brackets in the where clause of Reactor's query ?
(Reactor ? That's a framework for ColdFusion that transparently
generates a variety of objects which can be used to interact with a variety
of database systems.)
So, I want to be able to say in my query:
where
( a or b or c)
and
( x or y )
but Reactor flattens this to:
where
a or b or c
and
x or y
which is a totally different thing.
Gah.
So, what to do ? Make use of Reactor's Where.addWhere() of course !
My code might start out looking like:
q.getWhere().setMode('Or');
q.getWhere().isEqual('cases','clientCode'
q.getWhere().isEqual('cases','clientCode'
q.getWhere().isEqual('cases','clientCode'
q.getWhere().setMode('And');
q.getWhere().isLike('cases','debtorName'
q.getWhere().setMode('Or');
q.getWhere().isLike('cases','debtorName2'
This just needs a few changes to construct seperate where's for each part inside brackets:
w2=gw.createQuery();
w2.getWhere().setMode('Or');
w2.getWhere().isEqual('cases','clientCod
w2.getWhere().isEqual('cases','clientCod
w2.getWhere().isEqual('cases','clientCod
q.getWhere().addWhere(w2.getWhere());
w2=gw.createQuery();
w2.getWhere().isLike('cases','debtorName'
w2.getWhere().setMode('Or');
w2.getWhere().isLike('cases','debtorName
q.getWhere().addWhere(w2.getWhere());