[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/common/src GDataObjects.py
From: |
James Thompson |
Subject: |
gnue/common/src GDataObjects.py |
Date: |
Fri, 12 Apr 2002 00:46:05 -0400 |
CVSROOT: /cvsroot/gnue
Module name: gnue
Changes by: James Thompson <address@hidden> 02/04/12 00:46:03
Modified files:
common/src : GDataObjects.py
Log message:
Fixed post() skipping the record following a deleted record
Performance updates
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/GDataObjects.py.diff?tr1=1.45&tr2=1.46&r1=text&r2=text
Patches:
Index: gnue/common/src/GDataObjects.py
diff -c gnue/common/src/GDataObjects.py:1.45
gnue/common/src/GDataObjects.py:1.46
*** gnue/common/src/GDataObjects.py:1.45 Thu Apr 4 18:02:31 2002
--- gnue/common/src/GDataObjects.py Fri Apr 12 00:46:03 2002
***************
*** 419,431 ****
# Returns 1=DataObject has uncommitted changes
def isPending(self):
- isPending = 0
for rec in (self._cachedRecords):
! isPending = isPending or rec.isPending()
! if isPending:
! break
! return isPending
!
# Returns 1=DataObject has uncommitted changes
--- 419,428 ----
# Returns 1=DataObject has uncommitted changes
def isPending(self):
for rec in (self._cachedRecords):
! if rec.isPending():
! return 1
! return 0
# Returns 1=DataObject has uncommitted changes
***************
*** 439,471 ****
# post our changes
self._update_cursor = self._dataObject._dataConnection.cursor()
! i = 0
! for record in self._cachedRecords:
! # Flip the flag for 'default' values to true so that hidden
! # default fields are included in insert statements
! for field in self._dataObject._defaultValues.keys():
! if record.isPending():
! record.setField(field, record.getField(field))
!
! 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
!
delete = record._emptyFlag or record._deleteFlag
! record.post()
! # Adjust the current record if a preceding record is deleted
! if delete and i <= self._currentRecord:
! self._currentRecord -= 1
! if delete:
! self._cachedRecords.pop(i)
! self._recordCount -= 1
else:
! i += 1
# Move to record 0 if all preceding records were deleted
# (or set to -1 if all records were deleted)
--- 436,470 ----
# post our changes
self._update_cursor = self._dataObject._dataConnection.cursor()
! recordPosition = 0
! while recordPosition < len(self._cachedRecords):
! record = self._cachedRecords[recordPosition]
!
delete = record._emptyFlag or record._deleteFlag
! if not delete:
! # Flip the flag for 'default' values to true so that hidden
! # default fields are included in insert statements
! if record.isPending():
! for field in self._dataObject._defaultValues.keys():
! record._modifiedFlags[field] = 1
! 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
! recordPosition += 1
else:
! # Adjust the current record if a preceding record
! # or the current record is deleted
! if recordPosition <= self._currentRecord:
! self._currentRecord -= 1
! self._cachedRecords.pop(recordPosition)
! self._recordCount -= 1
!
! record.post()
# Move to record 0 if all preceding records were deleted
# (or set to -1 if all records were deleted)
***************
*** 474,498 ****
self._currentRecord = 0
else:
self._currentRecord = -1
! if self._currentRecord >= self._recordCount:
! self._currentRecord = self._recordCount - 1
!
!
def notifyDetailObjects(self):
GDebug.printMesg(5,'Master record changed; Notifying Detail Objects')
for detail in self._dataObject._detailObjects:
! rs = detail[0]._masterRecordChanged(self)
! if detail[1]:
! detail[1].masterResultSetChanged(self, rs)
# Returns 1=Field is bound to a database field
def isFieldBound(self, fieldName):
! try:
! return self._dataObject._fieldReferences.has_key(fieldName)
! except:
! GDebug.printMesg(0,'I should never run')
return
self._dataObject._fieldReferences.has_key(string.lower(fieldName))
--- 473,497 ----
self._currentRecord = 0
else:
self._currentRecord = -1
! # TODO: I don't think we need this anymore
! # if self._currentRecord >= self._recordCount:
! # self._currentRecord = self._recordCount - 1
def notifyDetailObjects(self):
GDebug.printMesg(5,'Master record changed; Notifying Detail Objects')
for detail in self._dataObject._detailObjects:
! if detail[1]:
! detail[1].masterResultSetChanged(self,
! detail[0]._masterRecordChanged(self))
# Returns 1=Field is bound to a database field
def isFieldBound(self, fieldName):
! if self._dataObject._fieldReferences.has_key(fieldName):
! return 1
! else:
! #TODO: the string.lower() line should never be called but is left
! #TODO: here untill the cod
return
self._dataObject._fieldReferences.has_key(string.lower(fieldName))
***************
*** 535,548 ****
self._insertFlag = 0
self._emptyFlag = 0
self._fields = {}
! for key in initialData.keys():
! self._fields[key] = initialData[key]
else:
self._insertFlag = 1
self._emptyFlag = 1
self._fields = {}
! for key in defaultData.keys():
! self._fields[key] = defaultData[key]
# Returns 1=Record has uncommitted changes
--- 534,545 ----
self._insertFlag = 0
self._emptyFlag = 0
self._fields = {}
! self._fields.update(initialData)
else:
self._insertFlag = 1
self._emptyFlag = 1
self._fields = {}
! self._fields.update(defaultData)
# Returns 1=Record has uncommitted changes
***************
*** 614,624 ****
self._emptyFlag = 0
if self._parent.isFieldBound(field):
self._updateFlag = 1
! if self._modifiedFlags.has_key(fn):
! flag = self._modifiedFlags[fn] + 1
! else:
! flag = 1
! self._modifiedFlags[fn] = flag
try:
self._parent._dataObject._dataSource._onModification(self)
--- 611,617 ----
self._emptyFlag = 0
if self._parent.isFieldBound(field):
self._updateFlag = 1
! self._modifiedFlags[fn] = 1
try:
self._parent._dataObject._dataSource._onModification(self)
***************
*** 628,637 ****
# Returns 1=Field has been modified
def isFieldModified(self, fieldName):
! try:
! return self._modifiedFlags.has_key (fieldName)
! except KeyError:
! GDebug.printMesg(0,'I should never run')
return self._modifiedFlags.has_key (string.lower(fieldName))
--- 621,631 ----
# Returns 1=Field has been modified
def isFieldModified(self, fieldName):
! if self._modifiedFlags.has_key (fieldName):
! return 1
! else:
! #TODO: the string.lower() line should never be called but is left here
! #TODO: until the code is clean
return self._modifiedFlags.has_key (string.lower(fieldName))
- gnue/common/src GDataObjects.py,
James Thompson <=