[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r7949 - trunk/gnue-common/src/datasources/drivers/Base
From: |
reinhard |
Subject: |
[gnue] r7949 - trunk/gnue-common/src/datasources/drivers/Base |
Date: |
Wed, 28 Sep 2005 12:35:30 -0500 (CDT) |
Author: reinhard
Date: 2005-09-21 10:28:12 -0500 (Wed, 21 Sep 2005)
New Revision: 7949
Modified:
trunk/gnue-common/src/datasources/drivers/Base/RecordSet.py
trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py
Log:
Fixes for records that have been inserted and then deleted.
Modified: trunk/gnue-common/src/datasources/drivers/Base/RecordSet.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/Base/RecordSet.py 2005-09-21
14:42:01 UTC (rev 7948)
+++ trunk/gnue-common/src/datasources/drivers/Base/RecordSet.py 2005-09-21
15:28:12 UTC (rev 7949)
@@ -426,6 +426,14 @@
# ---------------------------------------------------------------------------
+ def isVoid (self):
+ """
+ Return True if the record has been inserted and then deleted.
+ """
+ return self.__inserted and self.__deleted
+
+ # ---------------------------------------------------------------------------
+
def isInserted (self):
"""
Return True if the record has been newly inserted and has either changes
@@ -495,7 +503,8 @@
happened has been committed.
"""
return (self.__requeryStatus == 'posted') \
- or (self.__requeryStatus == 'commit' and commit)
+ or (self.__requeryStatus == 'commit' and commit) \
+ or self.isEmpty () or self.isVoid ()
# ---------------------------------------------------------------------------
Modified: trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py 2005-09-21
14:42:01 UTC (rev 7948)
+++ trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py 2005-09-21
15:28:12 UTC (rev 7949)
@@ -692,7 +692,7 @@
while index < len (self.__cachedRecords):
record = self.__cachedRecords [index]
if record._needsRequery (commit):
- if ((record.isEmpty () or record.isDeleted ()) \
+ if ((record.isEmpty () or record.isVoid () or record.isDeleted ()) \
and self.__connection is not None):
self.__removeRecord (index)
else:
@@ -800,7 +800,8 @@
if self.current and self.current != oldCurrent:
# If the cursor moved out of an empty record, throw it away.
if oldCurrent and oldCurrent.isEmpty ():
- self.__removeRecord (self.__cachedRecords.index (oldCurrent))
+ if oldCurrent in self.__cachedRecords:
+ self.__removeRecord (self.__cachedRecords.index (oldCurrent))
self.current._activate ()
if self.__eventController is not None:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r7949 - trunk/gnue-common/src/datasources/drivers/Base,
reinhard <=