Hi Ed,

It seems to me that the 'table' object is the small problem:

   div=DIV()
    for table_db in db.tables:
       div.append(H2(table_db))
       table=TABLE()
       table.append(TR(*[TH(field) for field in
db[table_db].fields]))
       for row in db().select(db[table_db].ALL):
           table.append(TR(*[TD(row[field]) for field in
db[table_db].fields]))
       div.append(table)
    return div

Vidul



On Oct 11, 8:16 am, Ed <[EMAIL PROTECTED]> wrote:
> Thanks Massimo,
>
> I tried the code you suggest and received the following error:
>
>     table.append(TR(*[TH(field) for field in db[table].fields]))
> KeyError: <gluon.html.TABLE object at 0x923cf8c>
>
> Any idea why?
>
> Ed
>
> On Oct 1, 8:13 pm, mdipierro <[EMAIL PROTECTED]> wrote:
>
>
>
> > You can but your implementation is not the way to do it. If you have
> > html in strings you are doing it wrong.
> > Here is how you do it in a view:
>
> > {{for table in db.tables:}}
> > <h2>{{=table}}</h2>
> > {{=db().select(db[table].ALL)}}
> > {{pass}}
>
> > or more exlicitly:
>
> > {{for table in db.tables:}}
> > <h2>{{=table}}</h2>
> > <table>
> >   <tr>{{for field in db[table].fields:}}<th>{{=field}}</th></tr>
> >   {{for row in db().select(db[table].ALL):}}
> >   <tr>{{for field in db[table].fields:}}<th>{{=row[field]}}</th></tr>
> >   {{pass}}
> > </table>
> > {{pass}}
>
> > this is how you do the same in a controller
>
> > div=DIV()
> > for table in db.tables:
> >    div.append(H2(table))
> >    table=TABLE()
> >    table.append(TR(*[TH(field) for field in db[table].fields]))
> >    for row in db().select(db[table].ALL):
> >         table.append(TR(*[TD(row[field] for field in
> > db[table].fields]))
> >    div.append(table)
> > return div
>
> > On Oct 1, 6:57 pm, JorgeRpo <[EMAIL PROTECTED]> wrote:
>
> > > why dont you use the template syntax?
>
> > > Ed wrote:
> > > > Hi,
>
> > > > I want to be able to access, using theORMbut not executesql(), all
> > > > the data within my database without knowing the names of the tables or
> > > > fields. Essentially, I want code that looks something like this
>
> > > >     for table in MyDb.tables:
> > > >         html += "<h2>" + str(table) + "</h2>" # works!
>
> > > >         html += "<table>"
>
> > > >    html += "<tr>"
> > > >         for field in table.fields:  # doesn't work
> > > >             html += "<th>" + str(field.name) + ":" +
> > > > "str(field.value)" + "</th>"
> > > >    html += "</tr>"
>
> > > >         for row in table.rows:  # doesn't work
> > > >        html += "<tr>"
>
> > > >        for cell in row.cells:
> > > >                 html += "<td>" + str(cell.field.name) + ":" +
> > > > "str(cell.field.value)" + "</td>"
>
> > > >        html += "</tr>"
>
> > > >         html += "</table>"
>
> > > > Is that possible (and legal) in Web2py?
>
> > > > Thanks,
> > > > Ed

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to