[sqlalchemy] Re: Textual SQL

2009-02-03 Thread Pavel Skvazh

Thank you so much guys!
Now I figured it out. Hope this will help someone else as well :)

On Feb 2, 9:53 pm, MikeCo mconl...@gmail.com wrote:
 Commit behavior depends on how you configure the session's autocommit
 property. Follow the log messages in this little test.

 from sqlalchemy import MetaData, Table, Column, String
 from sqlalchemy.orm import sessionmaker
 meta = MetaData('sqlite:///')
 Session = sessionmaker(bind=meta.bind)
 t = Table('something',meta,
     Column('stuff',String)
     )

 print '+ create_all()'
 meta.create_all()
 meta.bind.echo=True

 session1 = Session(autocommit=False)  # this is default behavior
 print '+ execute() will not include commit'
 session1.execute(insert into something(stuff) values('some stuff'))
 print '+ commit()  need to do it yourself'
 session1.commit()

 session2 = Session(autocommit=True)  # commit is configurable
 print '+ execute() will include commit'
 session2.execute(insert into something(stuff) values('some more
 stuff'))

 On Feb 2, 1:15 pm, Bob Farrell robertanthonyfarr...@googlemail.com
 wrote:

  On Mon, Feb 02, 2009 at 09:56:15AM -0800, Pavel Skvazh wrote:

   Session.execute('INSERT INTO SOMETHING SOMETHING / DELETE/ UPDATE')

   Do I have to call Session.commit() after this or it's already taken
   care of? In other words does the literal sql statements follow the
   session transaction rules or they act on there own?

  sess.execute() will execute whatever you pass it immediately.

   And since this works and worked for me for a long time now, what's the
   benefit of from sqlalchemy.sql import text that I noticed in the docs
   lately?

  Using text() creates a ClauseElement that you can whack together with other
  constructs. See the docs here for more 
  info:http://www.sqlalchemy.org/docs/05/sqlexpression.html#using-text

   Thanks!

  --
  --
  Bob Farrell
  pH, an Experian Companywww.phgroup.com
  Office Line: 020 7598 0310
  Fax: 020 7598 0311
  --


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Textual SQL

2009-02-02 Thread Bob Farrell

On Mon, Feb 02, 2009 at 09:56:15AM -0800, Pavel Skvazh wrote:
 
 Session.execute('INSERT INTO SOMETHING SOMETHING / DELETE/ UPDATE')
 
 Do I have to call Session.commit() after this or it's already taken
 care of? In other words does the literal sql statements follow the
 session transaction rules or they act on there own?
 
sess.execute() will execute whatever you pass it immediately.

 And since this works and worked for me for a long time now, what's the
 benefit of from sqlalchemy.sql import text that I noticed in the docs
 lately?
 
Using text() creates a ClauseElement that you can whack together with other
constructs. See the docs here for more info:
http://www.sqlalchemy.org/docs/05/sqlexpression.html#using-text

 Thanks!
  

-- 
--
Bob Farrell
pH, an Experian Company
www.phgroup.com
Office Line: 020 7598 0310
Fax: 020 7598 0311
--

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Textual SQL

2009-02-02 Thread MikeCo

Commit behavior depends on how you configure the session's autocommit
property. Follow the log messages in this little test.

from sqlalchemy import MetaData, Table, Column, String
from sqlalchemy.orm import sessionmaker
meta = MetaData('sqlite:///')
Session = sessionmaker(bind=meta.bind)
t = Table('something',meta,
Column('stuff',String)
)

print '+ create_all()'
meta.create_all()
meta.bind.echo=True

session1 = Session(autocommit=False)  # this is default behavior
print '+ execute() will not include commit'
session1.execute(insert into something(stuff) values('some stuff'))
print '+ commit()  need to do it yourself'
session1.commit()

session2 = Session(autocommit=True)  # commit is configurable
print '+ execute() will include commit'
session2.execute(insert into something(stuff) values('some more
stuff'))


On Feb 2, 1:15 pm, Bob Farrell robertanthonyfarr...@googlemail.com
wrote:
 On Mon, Feb 02, 2009 at 09:56:15AM -0800, Pavel Skvazh wrote:

  Session.execute('INSERT INTO SOMETHING SOMETHING / DELETE/ UPDATE')

  Do I have to call Session.commit() after this or it's already taken
  care of? In other words does the literal sql statements follow the
  session transaction rules or they act on there own?

 sess.execute() will execute whatever you pass it immediately.

  And since this works and worked for me for a long time now, what's the
  benefit of from sqlalchemy.sql import text that I noticed in the docs
  lately?

 Using text() creates a ClauseElement that you can whack together with other
 constructs. See the docs here for more 
 info:http://www.sqlalchemy.org/docs/05/sqlexpression.html#using-text

  Thanks!

 --
 --
 Bob Farrell
 pH, an Experian Companywww.phgroup.com
 Office Line: 020 7598 0310
 Fax: 020 7598 0311
 --
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---