On Jun 13, 2007, at 10:58 PM, <[EMAIL PROTECTED]>  
<[EMAIL PROTECTED]> wrote:

> We have two tables in a parent-child relationship.   On a form, we are
> adding a new record to the parent and then adding child records  
> without
> first saving the parent record.   Upon saving (Form.saveAll) we were
> expecting the following....the parent record would be saved and the  
> pkid for
> new record retrieved, then the child records would be updated with the
> parent pkid as the foreign key and then saved.
>
> However, we are not seeing this.   It appears that the child fk  
> value is
> getting assigned an unexpected number that is absolutely not the pk  
> of the
> parent.

        This answer is more for John Fabiani, since he has more experience  
with PostgreSQL.

        Looking at the code, dbPostgreSQL doesn't override  
dBackend.getLastInsertID(), so that means it is relying on the dbapi- 
level cursor's 'lastrowid' attribute. Could you verify that this is  
correct, and is working properly? If not, we'll have to provide a way  
of retrieving that new PK.

        Larry, can you try this? Add this code to the bizobj for the parent  
table:

def onSaveNew(self):
        print "LASTROWID:", self._CurrentCursor.lastrowid
        print "NEW PK:", self.getPK()

        If things are working correctly, both of those lines should print  
the same value. If not, then that's a sign that we need to update the  
PK-fetching routine.

-- Ed Leafe
-- http://leafe.com
-- http://dabodev.com




_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: http://leafe.com/archives/byMID/dabo-users/[EMAIL PROTECTED]

Reply via email to