commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue gnue-common/src/GDataObjects.py gnuef/src/...


From: Jason Cater
Subject: gnue gnue-common/src/GDataObjects.py gnuef/src/...
Date: Thu, 08 Nov 2001 14:57:00 -0500

CVSROOT:        /home/cvs
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    01/11/08 14:57:00

Modified files:
        gnue-common/src: GDataObjects.py 
        gnuef/src/GFObjects: GFBlock.py 

Log message:
        modified resultsets so that it maintains the currentRecord setting 
during a commit (even if records are deleted); gnuef now reflects this change

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/GDataObjects.py.diff?cvsroot=OldCVS&tr1=1.28&tr2=1.29&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFObjects/GFBlock.py.diff?cvsroot=OldCVS&tr1=1.23&tr2=1.24&r1=text&r2=text

Patches:
Index: gnue/gnue-common/src/GDataObjects.py
diff -u gnue/gnue-common/src/GDataObjects.py:1.28 
gnue/gnue-common/src/GDataObjects.py:1.29
--- gnue/gnue-common/src/GDataObjects.py:1.28   Wed Nov  7 23:39:03 2001
+++ gnue/gnue-common/src/GDataObjects.py        Thu Nov  8 14:57:00 2001
@@ -422,14 +422,33 @@
   # Post changes to the database
   def post(self, foreign_keys={}):
     # post our changes
+
+    i = 0
     for record in (self._cachedRecords):
+     
+      # Adjust the current record if a preceding record is deleted
+      if record._deleteFlag and i <= self._currentRecord: 
+        self._currentRecord -= 1
+
+      # Perform the post for this record
       for field in foreign_keys.keys():
         record._fields[field] = foreign_keys[field]
         # Some DBs will throw an exception if you update a Primary Key
         # (even if you are updating to the same value)
         if record._insertFlag:
           record._modifiedFlags[field] = 1
+
       record.post()
+      i += 1
+
+    # Move to record 0 if all preceding records were deleted
+    # (or set to -1 if all records were deleted)
+    if self._currentRecord < 0: 
+      if len(self._cachedRecords): 
+        self._currentRecord = 0
+      else: 
+        self._currentRecord = -1
+
 
   def notifyDetailObjects(self):
     GDebug.printMesg(5,'Master record changed; Notifying Detail Objects')
Index: gnue/gnuef/src/GFObjects/GFBlock.py
diff -u gnue/gnuef/src/GFObjects/GFBlock.py:1.23 
gnue/gnuef/src/GFObjects/GFBlock.py:1.24
--- gnue/gnuef/src/GFObjects/GFBlock.py:1.23    Thu Nov  8 04:14:21 2001
+++ gnue/gnuef/src/GFObjects/GFBlock.py Thu Nov  8 14:57:00 2001
@@ -215,7 +215,12 @@
       self._resultSet.post()
       self._dataSourceLink._dataObject.commit()
 
-    self.jumpRecord(0)
+    # If all our records were deleted, create an empty record
+    if not self._resultSet.getRecordCount():
+      self.newRecord()
+    else: 
+      self.jumpRecord(self._resultSet.getRecordNumber()-1)
+
     self.mode='normal'
 
   #



reply via email to

[Prev in Thread] Current Thread [Next in Thread]