Hi, I am getting error *<class 'sqlite3.OperationalError'> near "interval_time": syntax error*
Please see the code and traceback below: *In db.py:* db.define_table( 'status', Field('serial_no',requires=IS_NOT_EMPTY()), Field('name',requires=IS_NOT_EMPTY()), Field('updated_on','datetime',default=request.now), Field('interval_time','integer',default=0)) def save_status(): result = {} result['serial_no'] = '123456' result['name'] = 'MyDevice' result['updated_on'] = request.now result['interval_time'] = 1 db.status.insert(**result) db.commit() *In default.py:* from gluon.dal import Expression def status(): tbl = db.status max_created_on = tbl.updated_on.max() query = Expression(db,"date_sub(now(),interval interval_time minute) > updated_on") rows=db(query).select(tbl.serial_no,tbl.name,\ tbl.interval_time,max_created_on,\ groupby=tbl.serial_no|tbl.name) # additional logic has to be added here when we get rows object successfully from db.... grid = SQLFORM.grid(db.status) return locals() def save_device_status(): save_status() *TRACEBACK:* Ticket ID 127.0.0.1.2012-11-14.14-09-15.d938f195-3cd2-4ea2-9044-40a2e8d4226f <class 'sqlite3.OperationalError'> near "interval_time": syntax error Version web2py™ (2, 1, 1, datetime.datetime(2012, 10, 15, 12, 44, 40), 'stable') Python Python 2.7.2: C:\Python27\python.exe Traceback 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Traceback (most recent call last): File "D:\web2py2.1.1\web2py\gluon\restricted.py", line 209, in restricted exec ccode in environment File "D:/web2py2.1.1/web2py/applications/TestApplication/controllers/default.py" <http://127.0.0.1:8000/admin/default/edit/TestApplication/controllers/default.py>, line 91, in <module> File "D:\web2py2.1.1\web2py\gluon\globals.py", line 187, in <lambda> self._caller = lambda f: f() File "D:/web2py2.1.1/web2py/applications/TestApplication/controllers/default.py" <http://127.0.0.1:8000/admin/default/edit/TestApplication/controllers/default.py>, line 84, in status groupby=tbl.serial_no|tbl.name) File "D:\web2py2.1.1\web2py\gluon\dal.py", line 8787, in select return adapter.select(self.query,fields,attributes) File "D:\web2py2.1.1\web2py\gluon\dal.py", line 2127, in select return super(SQLiteAdapter, self).select(query, fields, attributes) File "D:\web2py2.1.1\web2py\gluon\dal.py", line 1615, in select return self._select_aux(sql,fields,attributes) File "D:\web2py2.1.1\web2py\gluon\dal.py", line 1580, in _select_aux self.execute(sql) File "D:\web2py2.1.1\web2py\gluon\dal.py", line 1693, in execute return self.log_execute(*a, **b) File "D:\web2py2.1.1\web2py\gluon\dal.py", line 1687, in log_execute ret = self.cursor.execute(*a, **b) OperationalError: near "interval_time": syntax error Error snapshot [image: help] <class 'sqlite3.OperationalError'>(near "interval_time": syntax error) inspect attributes Frames - *File D:\web2py2.1.1\web2py\gluon\restricted.py in restricted at line 209 * code arguments variables - *File D:\web2py2.1.1\web2py\applications\TestApplication\controllers\default.py in <module> at line 91* code arguments variables - *File D:\web2py2.1.1\web2py\gluon\globals.py in <lambda> at line 187* code arguments variables - *File D:\web2py2.1.1\web2py\applications\TestApplication\controllers\default.py in status at line 84* code arguments variables Code listing 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. max_created_on = tbl.updated_on.max() query = Expression(db,"date_sub(now(),interval interval_time minute) > updated_on") rows=db(query).select(tbl.serial_no,tbl.name,\ tbl.interval_time,max_created_on,\ groupby=tbl.serial_no|tbl.name) grid = SQLFORM.grid(db.status) return locals() - *File D:\web2py2.1.1\web2py\gluon\dal.py in select at line 8787* code arguments variables - *File D:\web2py2.1.1\web2py\gluon\dal.py in select at line 2127* code arguments variables - *File D:\web2py2.1.1\web2py\gluon\dal.py in select at line 1615* code arguments variables - *File D:\web2py2.1.1\web2py\gluon\dal.py in _select_aux at line 1580* code arguments variables - *File D:\web2py2.1.1\web2py\gluon\dal.py in execute at line 1693* code arguments variables - *File D:\web2py2.1.1\web2py\gluon\dal.py in log_execute at line 1687* code arguments variables Function argument list (self=<gluon.dal.SQLiteAdapter object>, *a=('SELECT status.serial_no, status.name, status.in...dated_on) GROUP BY status.serial_no, status.name;',), **b={}) Code listing 1682. 1683. 1684. 1685. 1686. 1687. 1688. 1689. 1690. 1691. command = a[0] if self.db._debug: LOGGER.debug('SQL: %s' % command) self.db._lastsql = command t0 = time.time() ret = self.cursor.execute(*a, **b) self.db._timings.append((command,time.time()-t0)) del self.db._timings[:-TIMINGSSIZE] return ret Variables a ('SELECT status.serial_no, status.name, status.in...dated_on) GROUP BY status.serial_no, status.name;',) b {} self <gluon.dal.SQLiteAdapter object> ret undefined self.cursor <sqlite3.Cursor object> self.cursor.execute <built-in method execute of sqlite3.Cursor object> *I am suspecting something is wrong with Expression syntax but unable to catch it , please help me resolve this issue.* Thanks, Amit * * --