----- Original Message -----
From: "Tino Wildenhain" <[EMAIL PROTECTED]>
To: "Jonathan" <[EMAIL PROTECTED]>
Cc: "Yuri" <[EMAIL PROTECTED]>; <firstname.lastname@example.org>
Sent: Thursday, February 08, 2007 9:36 AM
Subject: Re: [Zope] emulate a sequence
----- Original Message ----- From: "Yuri" <[EMAIL PROTECTED]>
Sent: Thursday, February 08, 2007 9:09 AM
Subject: [Zope] emulate a sequence
I need a field in zope object which act as a sequence. I mean every time
I create an object, the value is the previous sequence value of the last
object created + 1.
also I need to browse the objects by sequence (from the object 1 to the
last, by the sequence number)
I think I need a catalog FieldIndex to store the sequence for searches,
a property in the object.
Can I use the catalog to retrieve the max value of the index, so when I
create the object, I just add 1 and store it in the property?
You could use a catalog if you have other searching requirements, but the
method objectIds() (see the zopebook for more info) will return a list of
contained Ids, which you can then sort to get you what you need. Also,
len(somefolder.objectIds()) will give you the next available id (assuming
your object ids have some sequential numbering).
Which both would not exacly emulate a sequence. Sequences live outside
transaction borders so they are inremented every time under any
All the above methods would fall flat on the tummy when you are hit with
variuos rollback or retries while other transactions concurrently add
Tino has a good point. For sites that will be saving (committing) many
objects to the same folder (from simultaneous transactions) we use a
randomly generated 10 digit id (which is then checked against existing
object ids). I have done some load testing with this approach and it has
worked (so far!).
Zope maillist - Zope@zope.org
** No cross posts or HTML encoding! **
(Related lists -