Hi! Here is controller's logic: 1. Get field value: fld_v= db.table[i].any_field
2. Evaluate new value depending on existing one: new_fld_v=fun(fld_v) 3. Update record with new value: db(db.table.id==i).update(any_field=new_fld_v) The problem: After first step (i.e. after SELECT) just a SHARED lock is acquired (see SQLite docs). Thus, any other request can call the same controller and get the same field's value and etc. How can I allow sequential calls only to prevent any other's SELECT until UPDATE? I know about BEGIN DEFERRED/IMMEDIATE/EXCLUSIVE, also I know web2py enclose all request/controller's calls in something like BEGIN/COMMIT, but SQLite doesn't support nested BEGIN/COMMIT (except SAVEPOINT). What is default isolation_level/locking_mode is realized during web2py request process? Is there safe solution or I worry for nothing? -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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/d/optout.