Use ``update_record`` instead of ``update``. the ``update`` function comes from the dict parent class, and does not issue SQL.
``update_record`` is a web2py thing that will take any changes made to the record instance (by use of assignment or update function) and issue the appropriate SQL -- Thadeus On Mon, May 9, 2011 at 9:37 PM, niknok <nikolai...@gmail.com> wrote: > Yes, guys thanks. I realized that that was the culprit this morning. > Hard to decode with beer fogging your thoughts... :P > > Reverted to the original and all is working again. I forgot I was > testing that line from a code in the book. > > On May 9, 11:01 pm, Anthony <abasta...@gmail.com> wrote: > > On Monday, May 9, 2011 10:45:36 AM UTC-4, niknok wrote: > > > > > I have these lines that is supposed to update a record but it doesn't: > > > > > db.card.validated.writable=True > > > db.card.modified_by.writable=True > > > > db.card(db.card.alnum==c_hash).update(validated=True,modified_by=auth.user. > id) > > > > > Is there anything I missed? I tried to include a manual db.commit(), > but > > > that didn't work either. > > > > You can use the db.card(db.card.alnum==c_hash) notation to fetch a row > > (though I think you have to include the record ID as the first argument), > > but I'm not sure you can use it to update a record. For that, you may > have > > to use the usual query notation: db(db.card.alum==c_hash).update(...). > You > > might also be able to use your original notation along with > update_record, > > but I don't see any reason to prefer that over the usual method. > > > > Anthony >