
Hi Marc Weber
Another example: Updating the age of a pupil:
row = SELECT * FROM pupils where age = 13; UPDATE pupils SET age = 14 WHERE id = <the id you got above>
p = session.query(Pupil).filter(Pupil.age==13).one().age=14 session.commit()
difference? You don't have to care about ids. you just assign a new value and tell the engine that it should commit. So again less chances to get something wrong.
Could you not do in SQL:
UPDATE pupils SET age = 14 WHERE age = 13 Of course. But: you can pass around that pupil object to another function and still assign a new age
Hi Mads! On Tue, Jun 30, 2009 at 11:49:40PM +0200, Mads Lindstrøm wrote: then run session.commit(). When passing around the pupile you can follow the relation_ships (relations?) back to school. def doSomething(pupil): pupil['age'] = 13 pupil.teacher.school.rating += 1 doSomething(session.query(Pupil).filter(Pupil.age==13)) session.commit() Now how would you do this using SQL? Sorry about the confustion (relation / relation-ship). I mixed up the terminology. Anyway I guess you can see here how powerful an ORM can be and why we should write such a library for haskell. I think it's very hard to invent such a short synax in haskell cause you have to take monads into account etc.. And it matters how much time you have to spend writing code. Thanks for your feedback. I hope there will be some more. Marc Weber