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