Hi Anthony, Thanks for that, I couldn't remember about the 'extracolumns' and I don't think they were in the book yet (unless just recently).
With regards the virtual fields, I was still struggling with including the virtualfields when limiting columns. This works fine: >>>rows = db(db.table.id>0).select() >>>for row in rows: print row.myvirtualfield But this does not: >>>rows = db(db.table.id>0).select(db.table.id, db.table.myvirtualfield) keyerror: db.table.myvirtualfield It doesn't matter on a table with few fields, but when the rows are very wide, it hurts. I made this point recently with regards to SQLFORM.grid, so I guess I ought to be patient until it becomes a priority. Thanks for you help Regards, David