It works! Thank you very much.
On Oct 29, 11:13 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
> try:
>
> def index():
> records = {}
> if request.vars.boton:
> key=request.vars.dato
> for tablename in db.tables:
> table=db[tablename]
> fields=[table[fieldname] for fieldname in table.fields]
> queries=[field.like('%'+key+'%') for field in fields if
> field.type in ['text','string']]
> print queries
> if queries:
> query=reduce(lambda x,y: x|y,queries)
> records[tablename]=db(query).select()
> return dict(records)
>
> Do you have tables with no 'text' or 'string' fields? That could have
> caused the problem.
>
> On Oct 29, 11:04 am,__Kyo__<iacastil...@gmail.com> wrote:
>
>
>
> > Hi, i have a problem running this.
>
> > def index():
> > records = {}
> > if request.vars.boton:
> > key=request.vars.dato
> > for tablename in db.tables:
> > table=db[tablename]
> > fields=[table[fieldname] for fieldname in table.fields]
> > queries=[field.like('%'+key+'%') for field in fields if
> > field.type in ['text','string']]
> > print queries
> > query=reduce(lambda x,y: x|y,queries)
> > records[tablename]=db(query).select()
> > return dict(records)
>
> > The error message:
> > query=reduce(lambda x,y: x|y,queries)
> > TypeError: reduce() of empty sequence with no initial value
>
> > I would apprecaite a lot if you could help me with this.
>
> > On Oct 28, 11:51 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > seems to specific to me, but we could have a plugin for it.
>
> > > Massimo
>
> > > On Oct 28, 9:55 pm, Alex Fanjul <alex.fan...@gmail.com> wrote:
>
> > > > Massimo, what about a full text database search engine, but at web2py
> > > > level to abstract databases peculiarities?
> > > > Maybe its a silly idea...
> > > > Alex F
>
> > > > El 29/10/2009 2:21, mdipierro escribió:
>
> > > > > I think it does not show because you overwrite the variable at every
> > > > > iteration
> > > > > I would try something like this
>
> > > > > def index():
> > > > > key=request.vars.baton
> > > > > records = {}
> > > > > for tablename in db.tables:
> > > > > table=db[tablename]
> > > > > fields=[table[fieldname] for fieldname in table.fields]
> > > > > queries=[field.like('%'+key+'%') for field in fields if
> > > > > field.type in ['text','string']]
> > > > > query=reduce(lambda x,y: x|y,queries)
> > > > > records[tablename]=db(query).select()
> > > > > return dict(records)
>
> > > > > It should display a list of records that match by any field without
> > > > > duplicates
>
> > > > --
> > > > Alejandro Fanjul Fdez.
> > > > alex.fan...@gmail.comwww.mhproject.org
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to
web2py+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---