On Feb 18, 2008, at 12:20 PM, jason kirtland wrote:
> To my knowledge you can't define a primary mapper against a free-form
> text SQL statement- without knowing what the columns will be, the
> mapper
> can't set up the attribute mappings in the target class.
>
> There are probably other ways to set this up, but what I've done in
> the
> past for a read-only query mapping is similar to how I've mapped some
> views: first, spell out a placeholder Table in SA with all the columns
> and types that the custom query returns. Then map against the Table,
> but use the hand-written SQL for queries:
>
> baz_table = Table('baz_placeholder', metadata, Column(...), ...)
> mapper(Baz, baz_table)
> sql = text('SELECT foo, bar FROM baz WHERE root_item = :root')
>
> xyz_filtered_bazzes = \
> session.query(Baz).from_statement(sql).params(root='xyz')
since its usually the WHERE clause where various craziness goes on,
you can just define that part of the select() as text:
sometable.select().where("any kind of text goes here")
then just map to that. the mapper only cares about the exported
columns.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---