Hi Massimo, I spent the night on this and I think I got it. The problem, it is indeed the length but with a twist.
In the table I showed you (see above), the length is specified as a string : length="128". But in the Field documentation, the length is an int. I suppose the length was eval'd before and is simply assigned now. Having a string as length override the default value, the value is not None but is still incorrect. Hence the strange behavior. I'll continue my tests more extensively. I'll package and send you the app if my hypothesis is wrong. Thank you very much for you help. L. On Jul 28, 6:45 am, mdipierro <mdipie...@cs.depaul.edu> wrote: > Could you email me the app (confidentially)? > > On Jul 27, 12:07 pm, Lionel Barret <lionel.bar...@gmail.com> wrote: > > > In fact, I can update a row but I cannot add a new one. > > > On Jul 27, 7:01 pm, Lionel Barret <lionel.bar...@gmail.com> wrote: > > > > Sorry to be slow but I don't get it. > > > > This is what I did : > > > * changed the sqldb to dal > > > * changed the sqlfield to field > > > * check that the params were good (the "text" type you mention). > > > > tested on this table, defined in db.py : > > > -- > > > db.define_table('product_pages', > > > Field('title', 'string', length="128"), > > > Field('text', 'text')) > > > > db.product_pages.title.requires = IS_NOT_EMPTY() > > > db.product_pages.text.requires = IS_NOT_EMPTY() > > > --- > > > I still get the error whe trying to update the table. I use the > > > appadmin. > > > > What's wrong ? > > > > L. > > > > On Jul 27, 6:32 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > P.S. you problem is 2 years old. You may also want to replace SQLField > > > > with Field and SQLDB with DAL for aesthetic reasons. > > > > > On Jul 27, 11:31 am, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > > One of your fields has a length=None. Change it to a value or (better) > > > > > set the type to 'text'. > > > > > > Massimo > > > > > > On Jul 27, 11:26 am, Lionel Barret <lionel.bar...@gmail.com> wrote: > > > > > > > Hi all, > > > > > > > We are moving our app from one host to the other. > > > > > > > We used v1.44 on our old host, the new one use the current version. > > > > > > > And as I test the new host, I discovered our database cannot be > > > > > > updated/written to anymore. > > > > > > > It can be read, though as the site does work, and the admin app does > > > > > > display the db content. > > > > > > > I tested with our app and the admin app. > > > > > > > I get the same error in both case : > > > > > > > Traceback (most recent call last): > > > > > > File "gluon/restricted.py", line 178, in restricted > > > > > > exec ccode in environment > > > > > > File "/srv/Web/www/web2py/applications/g2009_current/controllers/ > > > > > > appadmin.py", line 281, in <module> > > > > > > File "gluon/globals.py", line 96, in <lambda> > > > > > > self._caller = lambda f: f() > > > > > > File "/srv/Web/www/web2py/applications/g2009_current/controllers/ > > > > > > appadmin.py", line 103, in insert > > > > > > if form.accepts(request.vars, session): > > > > > > File "gluon/sqlhtml.py", line 1029, in accepts > > > > > > self.vars.id = self.table.insert(**fields) > > > > > > File "gluon/sql.py", line 1933, in insert > > > > > > query = self._insert(**fields) > > > > > > File "gluon/sql.py", line 1913, in _insert > > > > > > value = value[:field.length] > > > > > > TypeError: slice indices must be integers or None or have an > > > > > > __index__ > > > > > > method > > > > > > > Any ideas ? Massimo ?