Michael,

Any chance of this explanation be included in documentation or the FAQ ?


[]s



On 12/8/06, Michael Bayer <[EMAIL PROTECTED]> wrote:
>
> oh, in all cases it is perfectly acceptable to write the queries as
> text, of course...usually when someone asks me "how do i write query
> X", i assume they are looking for the "constructed" version of
> it....since they already wrote the non-constructed version.
>
> areas where "constructed" queries are better:
>
> 1. the ORM needs to know the list of columns from a constructed SQL
> statement as well as the underlying tables used in the statement; so
> constructed statements are usually required if youre going to map with
> them using the ORM.
> 2. anytime you have an application that is programmatically building up
> or modifying a query, constructed is better, since you easily can add
> syntactic elements without needing to parse/modify string SQL text
> 3. the constructed syntax is more succinct in many cases - i.e.
> table.insert().execute(x=5), table.select(table.c.y==7), etc.
> 4. you get the database-agnostic behavior.   there are advantages here
> with regards to inserts (abstracts away primary key generation), in
> some cases joins (oracle 8 requires the (+) operator for outer joins),
> quoting rules (reserved words, mixed case identifiers automatically
> quoted as per the database's quoting rules), and a variety of little
> things, like column==None becomes "column IS NULL", etc.
> 5. all of the WHERE criterion you send to an ORM query needs to be
> constructed so that eager loads and such can build up their own
> criterion and modifications on top of the central query.
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to