Il 24/05/13 13:21, Simon Carr ha scritto: > By the way I am using Gluon in a standalone Python script, so if the > code does not look quite that might be the reason. > > I currently have some values hard coded in my SQL but I now want users > to have a choice. Here is the current code. > > | > RS_Data = db( > (db.weekly_data.week == weekno)& > ((db.weekly_data.itemgroup == 'BOTDTO')| > (db.weekly_data.itemgroup == 'C&FOTO')| > (db.weekly_data.itemgroup == 'PROPTO')| > (db.weekly_data.itemgroup == 'STRSTO'))& > (db.weekly_data.days <= bin_group['high'])& > (db.weekly_data.days >= bin_group['low']) > ).select(db.weekly_data.item, > orderby=db.weekly_data.item, > groupby=db.weekly_data.item > ) > | > > Below is what I am trying to do but getting an error. As you can see I > am trying to build up my selection criteria based on the values a > users has selected from a list. It would be great I could just pass in > a Python List. If I cant just pass in a list what would you suggest is > the best way to solve this problem? If I correctly understood you need a way to build a queryparametrically... I would try something like this:
def build_my_query(v): q = (db.weekly_data.itemgroup == v) return (db.weekly_data.week == weekno)&q&(db.weekly_data.days <= bin_group['high'])&(db.weekly_data.days >= bin_group['low']) personally I don't like code that write code... I hope it could be of any help bye M. > > | > buildCommod = "(" > for commodity in commodityList: > buildCommod += "(db.weekly_data.itemgroup == '" + > commodity + "')|" > buildCommod = buildCommod[:-1] + ")" > > RS_Data = db( > (db.weekly_data.week == weekno)& > buildCommod & > (db.weekly_data.days <= bin_group['high'])& > (db.weekly_data.days >= bin_group['low']) > ).select(db.weekly_data.item, > orderby=db.weekly_data.item, > groupby=db.weekly_data.item > ) > > | > > The error I am getting is > > | > File "D:\Data\BAAN\summary.py", line 1052, in AOL_AllUpAllUpToExcel > groupby=db.weekly_data.item > File "D:\Python27_5\gluon\dal.py", line 9860, in select > return adapter.select(self.query,fields,attributes) > File "D:\Python27_5\gluon\dal.py", line 1690, in select > return self._select_aux(sql,fields,attributes) > File "D:\Python27_5\gluon\dal.py", line 1655, in _select_aux > self.execute(sql) > File "D:\Python27_5\gluon\dal.py", line 1768, in execute > return self.log_execute(*a, **b) > File "D:\Python27_5\gluon\dal.py", line 1762, in log_execute > ret = self.cursor.execute(*a, **b) > File "D:\Python27_5\gluon\contrib\pg8000\dbapi.py", line 246, in _fn > return fn(self, *args, **kwargs) > File "D:\Python27_5\gluon\contrib\pg8000\dbapi.py", line 317, in execute > self._execute(operation, args) > File "D:\Python27_5\gluon\contrib\pg8000\dbapi.py", line 322, in > _execute > self.cursor.execute(new_query, *new_args) > File "D:\Python27_5\gluon\contrib\pg8000\interface.py", line 398, in > execute > self._stmt = PreparedStatement(self.connection, query, > statement_name="", *[{"type": type(x), "value": x} for x in args]) > File "D:\Python27_5\gluon\contrib\pg8000\interface.py", line 138, in > __init__ > self._parse_row_desc = self.c.parse(self._statement_name, > statement, types) > File "D:\Python27_5\gluon\contrib\pg8000\protocol.py", line 943, in _fn > return fn(self, *args, **kwargs) > File "D:\Python27_5\gluon\contrib\pg8000\protocol.py", line 1104, in > parse > return reader.handle_messages() > File "D:\Python27_5\gluon\contrib\pg8000\protocol.py", line 929, in > handle_messages > raise exc > gluon.contrib.pg8000.errors.ProgrammingError: ('ERROR', '3F000', > 'schema "db" does not exist') > | > > > > -- > > --- > You received this message because you are subscribed to the Google > Groups "web2py-users" group. > To unsubscribe from this group and stop receiving emails from it, send > an email to web2py+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.