dabo Commit
Revision 3788
Date: 2007-12-11 09:49:46 -0800 (Tue, 11 Dec 2007)
Author: Ed
Trac: http://svn.dabodev.com/trac/dabo/changeset/3788

Changed:
U   trunk/dabo/db/dCursorMixin.py

Log:
Fixed several bugs in the handling of compound KeyField values.


Diff:
Modified: trunk/dabo/db/dCursorMixin.py
===================================================================
--- trunk/dabo/db/dCursorMixin.py       2007-12-11 16:10:01 UTC (rev 3787)
+++ trunk/dabo/db/dCursorMixin.py       2007-12-11 17:49:46 UTC (rev 3788)
@@ -732,8 +732,8 @@
                        cursor.setNewFlag()
                """
                if self.KeyField:
-                       rec = self._records[self.RowNumber]
-                       self._newRecords[rec[self.KeyField]] = None
+                       pk = self.getPK()
+                       self._newRecords[pk] = None
 
 
        def genTempAutoPK(self):
@@ -1233,7 +1233,8 @@
                rec = self._records[row]
 
                try:
-                       del self._mementos[rec[self.KeyField]]
+                       pk = self.getPK()
+                       del self._mementos[pk]
                except KeyError:
                        # didn't exist
                        pass
@@ -1256,7 +1257,8 @@
                rec = self._records[row]
 
                try:
-                       del self._newRecords[rec[self.KeyField]]
+                       pk = self.getPK()
+                       del self._newRecords[pk]
                except KeyError:
                        # didn't exist
                        pass
@@ -1483,12 +1485,10 @@
 
        def _getRecordByPk(self, pk):
                """Find the record with the passed primary key; return (row, 
record)."""
-               if self.KeyField:
+               kf = self.KeyField
+               if kf:
                        for idx, rec in enumerate(self._records):
-                               if self._compoundKey:
-                                       key = tuple([rec[k] for k in 
self.KeyField])
-                               else:
-                                       key = rec[self.KeyField]
+                               key = self.getFieldVal(kf, row=idx)
                                if key == pk:
                                        return (idx, rec)
                return (None, None)




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

Reply via email to