Hi Robert Forkel,

You got it right i am trying to have a combination of expression combined
in and_.

I need to add the attribute only when it is not equal to null.So i tried to
check if it is not null and then from the expression and pass it to filter
.But this does not work.

I went through the document but unable to figure out how to do this through
sql.


Thank you

On Thu, Dec 22, 2011 at 12:11 PM, Robert Forkel <xrotw...@googlemail.com>wrote:

> You may want to look at the tutorial [1]. In the code you pasted you
> are assembling a string to pass to filter. While you can do that (but
> then it should be proper sql not python!), what you want to do is
> passing a python expression like db.User.age==age, or a combination of
> expressions combined using and_, or_, etc.
>
> [1]
> http://www.sqlalchemy.org/docs/orm/tutorial.html#common-filter-operators
>
> On Thu, Dec 22, 2011 at 6:34 AM, Sana klh <sana.kl...@gmail.com> wrote:
> > I am getting the following error
> >
> > ProgrammingError: (ProgrammingError) (1064, "You have an error in your
> SQL
> > syntax; check the manual that corresponds to your MySQL server version
> for
> > the right syntax to use near '== 1,db.User.age==23,d' at line 3")
> >
> >
> > Is there any way by which i can generate dynamic query?
> >
> > Thank you
> >   Sana
> >
> >
> >
> > On Thu, Dec 22, 2011 at 4:40 AM, Jackson, Cameron
> > <cameron.jack...@thalesgroup.com.au> wrote:
> >>
> >> You might get more help if you provide more details. What error are you
> >> getting?
> >>
> >> -----Original Message-----
> >> From: sqlalchemy@googlegroups.com [mailto:sqlalchemy@googlegroups.com]
> On
> >> Behalf Of Sana
> >> Sent: Thursday, 22 December 2011 2:50 AM
> >> To: sqlalchemy
> >> Subject: [sqlalchemy] SqlAlchemy dynamic query generation
> >>
> >> Hi All,
> >>
> >> I am trying to do query based on the user input as follows
> >>
> >> condition = 'and_(db.User.id == id'
> >> if user_name != ' ':
> >>    condition += ',db.User.name == user_name'
> >> elif age != ' ':
> >>    condition += ',db.User.age == age'
> >> elif place != ' ':
> >>    condition += ',db.User.place == place'
> >>
> >> where = condition+')'
> >>
> >> result = db.User.filter(where).all()
> >>
> >>
> >> But Im getting error when i do this.
> >>
> >> Is there any way by which i can do this
> >>
> >>
> >> Thank you
> >>   Sana
> >>
> >> --
> >> You received this message because you are subscribed to the Google
> Groups
> >> "sqlalchemy" group.
> >> To post to this group, send email to sqlalchemy@googlegroups.com.
> >> To unsubscribe from this group, send email to
> >> sqlalchemy+unsubscr...@googlegroups.com.
> >> For more options, visit this group at
> >> http://groups.google.com/group/sqlalchemy?hl=en.
> >>
> >>
> >>
> >>
> -------------------------------------------------------------------------
> >> DISCLAIMER: This e-mail transmission and any documents, files and
> >> previous e-mail messages attached to it are private and confidential.
> >> They may contain proprietary or copyright material or information that
> >> is subject to legal professional privilege.  They are for the use of
> >> the intended recipient only.  Any unauthorised viewing, use, disclosure,
> >> copying, alteration, storage or distribution of, or reliance on, this
> >> message is strictly prohibited.  No part may be reproduced, adapted or
> >> transmitted without the written permission of the owner.  If you have
> >> received this transmission in error, or are not an authorised recipient,
> >> please immediately notify the sender by return email, delete this
> >> message and all copies from your e-mail system, and destroy any printed
> >> copies.  Receipt by anyone other than the intended recipient should not
> >> be deemed a waiver of any privilege or protection.  Thales Australia
> >> does not warrant or represent that this e-mail or any documents, files
> >> and previous e-mail messages attached are error or virus free.
> >>
> >>
> -------------------------------------------------------------------------
> >>
> >> --
> >> You received this message because you are subscribed to the Google
> Groups
> >> "sqlalchemy" group.
> >> To post to this group, send email to sqlalchemy@googlegroups.com.
> >> To unsubscribe from this group, send email to
> >> sqlalchemy+unsubscr...@googlegroups.com.
> >> For more options, visit this group at
> >> http://groups.google.com/group/sqlalchemy?hl=en.
> >>
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "sqlalchemy" group.
> > To post to this group, send email to sqlalchemy@googlegroups.com.
> > To unsubscribe from this group, send email to
> > sqlalchemy+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> > http://groups.google.com/group/sqlalchemy?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> To unsubscribe from this group, send email to
> sqlalchemy+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/sqlalchemy?hl=en.
>
>

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

Reply via email to