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