dabo Commit
Revision 6266
Date: 2010-12-18 14:11:33 -0800 (Sat, 18 Dec 2010)
Author: Jacekk
Trac: http://trac.dabodev.com/changeset/6266

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

Log:
Change in setFieldVal() method value type conversion, where it could be 
performed incorrectly if previous filed value was 'None'.

Diff:
Modified: trunk/dabo/db/dCursorMixin.py
===================================================================
--- trunk/dabo/db/dCursorMixin.py       2010-12-18 21:31:01 UTC (rev 6265)
+++ trunk/dabo/db/dCursorMixin.py       2010-12-18 22:11:33 UTC (rev 6266)
@@ -969,20 +969,20 @@
                except KeyError:
                        fldType = self._fldTypeFromDB(fld)
                nonUpdateFields = self.getNonUpdateFields()
-               if fldType is not None:
+               if fldType is not None and val is not None:
                        if fldType != type(val):
                                convTypes = (str, unicode, int, float, long, 
complex)
-                               if isinstance(val, convTypes) and 
isinstance(rec[fld], basestring):
+                               if issubclass(fldType, basestring) and 
isinstance(val, convTypes):
                                        val = ustr(val)
-                               elif isinstance(rec[fld], int) and 
isinstance(val, bool):
+                               elif issubclass(fldType, int) and 
isinstance(val, bool):
                                        # convert bool to int (original field 
val was bool, but UI
                                        # changed to int.
                                        val = int(val)
-                               elif isinstance(rec[fld], int) and 
isinstance(val, long):
+                               elif issubclass(fldType, int) and 
isinstance(val, long):
                                        # convert long to int (original field 
val was int, but UI
                                        # changed to long.
                                        val = int(val)
-                               elif isinstance(rec[fld], long) and 
isinstance(val, int):
+                               elif issubclass(fldType, long) and 
isinstance(val, int):
                                        # convert int to long (original field 
val was long, but UI
                                        # changed to int.
                                        val = long(val)



_______________________________________________
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/[email protected]

Reply via email to