Full function is too complex. But this little shows the problem well: value=request.vars.myvar t = type(value) value = float(value) t2 = type(value) value = int(value) t3 = type(value) print value, t, t2, t3
result: 99999999999999,<type 'str'>,<type 'float'>,<type 'int'> Why it makes int from 99999999999999? On 10 мар, 16:50, villas <villa...@gmail.com> wrote: > Why don't you try testing the value of 'value' in your code by using a > print statement to the console? At least that's what I usually do. > > You would ideally provide the entire controller function because your > code does not explain itself very well to me (although it may be > obvious to others!). > > On Mar 10, 8:27 am, LightOfMooN <vladsale...@yandex.ru> wrote: > > > > > > > > > Yes, ofc > > > controller/function: > > > prop = db(db.properties.id==request.args(0)).select().first() > > value=request.vars.myvar > > > try: > > value = int(value) > > except: > > pass > > > if value!=prop.value and type(value)==int: > > try: > > db(db.properties.id==request.args(0)).update(value=value) > > except: > > pass > > > it rises error > > <class 'psycopg2.InternalError'>(current transaction is aborted, > > commands ignored until end of transaction block) > > only if value not in range (-2147483648 : 2147483647) > > > so I type in shell > > a = 2147483647 > > type(a)>>> <type 'int'> > > > a +=9999 > > a > > > >>> 2147493646 > > type(a) > > >>> <type 'int'> > > > but I think it's already must be long > > > On 10 ÍÁÒ, 03:35, Massimo Di Pierro <massimo.dipie...@gmail.com> > > wrote: > > > > Can I see more of the code without ... > > > > On Mar 9, 3:17špm, LightOfMooN <vladsale...@yandex.ru> wrote: > > > > > value=request.vars.myvar > > > > > try: > > > > š š value = int(value) > > > > except: > > > > š š pass > > > > > if type(value)==int: > > > > š š insert(....) > > > > > it rises > > > > <class 'psycopg2.InternalError'>(current transaction is aborted, > > > > commands ignored until end of transaction block) > > > > even if value > 2147483647 > > > > > But why? > > > > It's so strange, because type(value) must be long.