You cannot do 'id IN' because GAE treats ID in a spacial way. Please
try a different field.

Massimo

On Jun 15, 5:49 pm, Dan <danbr...@gmail.com> wrote:
> whoops, sorry- I was working with the older version of web2py when I
> concluded that it was working properly.
>
> using the trunk version, it did not work on GAE -- but does work on
> SQLite. This is the error message I got (edited a bit for simplicity).
> I'm using an array of integers as the argument to the belongs()
> method, intending for them to match the user table's id field.
>
>   File "gluon/contrib/gql.py", line 309, in belongs
>     return SQLQuery(self,' IN ',value)
>   File "gluon/contrib/gql.py", line 530, in __init__
>     raise SyntaxError, 'id value must be integer'
> SyntaxError: id value must be integer
>
> On Jun 15, 3:20 pm, Dan <danbr...@gmail.com> wrote:
>
> > that works great! note that I didn't try to send more than 30 items -
> > so I don't know what would happen if that limit were exceeded.
>
> > thanks Massimo!
>
> > Dan
>
> > On Jun 15, 1:38 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > I have not tested/debugged it yet but you can try the latest trunk
>
> > > db(db.table.field.belongs(('a','b','c'))).select()
>
> > > Let me know if it works or not, and if not, what's the error.
> > > We can make it work replatively soon.
>
> > > Massimo
>
> > > On Jun 15, 2:04 pm, Dan <danbr...@gmail.com> wrote:
>
> > > > is it possible to create a GQL format query and send it to the GAE
> > > > datastore that web2py connects to? what would the code for that be?
>
> > > > On Jun 15, 10:25 am, Dan <danbr...@gmail.com> wrote:
>
> > > > > the IN operator is supported according 
> > > > > tohttp://code.google.com/appengine/docs/python/datastore/queriesandinde...
>
> > > > > The IN operator also performs multiple queries, one for each item in
> > > > > the provided list value where all other filters are the same and the
> > > > > IN filter is replaces with an equal-to filter. The results are merged,
> > > > > in the order of the items in the list. If a query has more than IN
> > > > > filter, the query is performed as multiple queries, one for each
> > > > > combination of values in the IN filters.
> > > > > A single query containing != and IN operators is limited to 30 sub-
> > > > > queries.
>
> > > > > but it looks like the gql.py file has commented out the code for
> > > > > belongs/IN (line 309) -- why?
>
> > > > > On Jun 15, 10:16 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > > > As far as I know GAE does not support this. The only option is to 
> > > > > > use
> > > > > > the ListProperty but web2py does not have an interface for it.
>
> > > > > > Massimo
>
> > > > > > On Jun 15, 11:45 am, Dan <danbr...@gmail.com> wrote:
>
> > > > > > > What is the proper way to run a query on Google App Engine that 
> > > > > > > uses
> > > > > > > an IN clause?
>
> > > > > > > I want to do something like this (in traditional SQL)
> > > > > > > SELECT person.name, person.age
> > > > > > > FROM person
> > > > > > > WHERE person.name IN ('Ralph','Henry','Sue')
>
> > > > > > > After searching around here and the web2py docs, I tried two 
> > > > > > > different
> > > > > > > approaches, and neither of them worked. Please let me know what I 
> > > > > > > can
> > > > > > > do to fix it. Thanks!
> > > > > > > Dan
>
> > > > > > > FIRST ATTEMPT:
> > > > > > >     personlist = ['Ralph','Henry','Sue']
> > > > > > >     personresultsqry = db.person.name.belongs(personlist)
> > > > > > >     personresults = db(personresultsqry).select(db.person.name,
> > > > > > > db.person.age)
>
> > > > > > > the error from the GAE dev app server is this:
> > > > > > > AttributeError: 'SQLField' object has no attribute 'belongs'
>
> > > > > > > SECOND ATTEMPT:
> > > > > > >     personlist = ['Ralph','Henry','Sue']
> > > > > > >     personresultsqry = db.GqlQuery("SELECT * FROM web2py_person 
> > > > > > > WHERE
> > > > > > > name IN :1", personlist)
> > > > > > >     personresults = db(personresultsqry).select(db.person.name,
> > > > > > > db.person.age)
>
> > > > > > > the error from the GAE dev app server is this:
> > > > > > > KeyError: 'GqlQuery'
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to