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.

Reply via email to