Il Sat, 4 Mar 2006 07:54:31 -0500, Aaron Bickell ha scritto:

> objectstore.commit().  I need the identifier when I create the object  
> for logging, and messaging purposes (amongst others). I don't want to  
> commit the transaction at this point, but I would like to have the  
> resultant object to be in 'sync' with the object store. This is what  

I can imagine you're using a non-meaningful, integer id connected with a
sequence. In that case, I doubt you can get the id without calling
objectstore.commit(): if you set echo=True in your engine string, you'll
see that the sequence is handled by the database, and asking for the next
sequence value in pgsql has the side-effect of *increasing* the sequence
value itself. So you cannot call that function 'manually', unless you then
use that value to manually override the id provided by the sequence. I
think there're two ways to do what you want:

1) Use a transaction. You'll get your object along with your id, but it
won't really get committed until you call engine.commit()

engine.begin()
u = User()
u.name = "John"
u.surname = "Smith"
objectstore.commit(u)
id = u.id

2) Manualli override your sequence, but remember passing the right id to
the object:

conn = schema.engine.connection()
c = conn.cursor()
c.execute("SELECT nextval('users_id_seq')")
id = c.fetchone()[0]

u = User()
u.id = id
u.name = "John"
u.surname = "Smith"

Of course the string passed to the execute() function will vary depending
on the table and on the db you're using.

-- 
Alan Franzoni <[EMAIL PROTECTED]>
-
Togli .xyz dalla mia email per contattarmi.
To contact me, remove .xyz from my email address.
-
GPG Key Fingerprint:
5C77 9DC3 BD5B 3A28 E7BC 921A 0255 42AA FE06 8F3E



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Sqlalchemy-users mailing list
Sqlalchemy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to