[TransWarp] Re: Transaction-Handling in DataModel and default values at
creation time ...
Ulrich Eck
ueck at net-labs.de
Tue May 21 09:16:30 EDT 2002
Hi Phillip,
--On Freitag, 17. Mai 2002 07:11 -0500 "Phillip J. Eby"
<pje at telecommunity.com> wrote:
> It's up to the RecordType implementation to do this, if it's appropriate.
> Typically, upon setting a type, it's necessary to change an existing
> field, which will of course automatically effect registration. In LDAP,
> when you change types you typically change the 'objectclass' field, so
> that takes care of it. Just use the record's app-side interface rather
> than its service-side interface. That is, use
> record['objectclass']=[whatever] rather than record.loadDefaults() or
> record.loadData().
>
Here we have the chicken and egg problem :)
in Datamodel __setitem___ is defined as followed:
------------------------------------------------
def __setitem__(self, key, value):
oldValue = self.data[key] <------- raises if record is not
initialized for this attribute
<snip>
if I setType for a record i need to use loadDefaults/loadData to initialize
it correctly,
but then i still have the problem that it is not registered in the
transaction.
What is better in your opinion:
1. register a record when calling setType
2. loadDefaults first and then modify an attribute to be shure it's
registered (don't like this one)
3. ???
another point that i'm not clear about:
when creating a record (setType for the firsttime) should the record be
created (in DB)
in the setTypeFor method (using the Default-Values) or should _saveRecord
check,
if record exists and add or modify it then (i use second approach yet)?
cheers
Ulrich Eck
---------------------------------------------------------------------------
net-labs Systemhaus GmbH
Ebersberger Str. 46
85570 Markt Schwaben
fon: +49-8121-4747-11
fax: +49-8121-4747-77
email: ueck at net-labs.de
http://www.net-labs.de
More information about the PEAK
mailing list