Changeset 47426
- Timestamp:
- 07/25/06 17:38:36 (2 years ago)
- Files:
-
- CPS4/products/CPSDirectory/trunk/SQLDirectory.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
CPS4/products/CPSDirectory/trunk/SQLDirectory.py
r47378 r47426 130 130 def getSQLValue(self, value, quoter=None): 131 131 """Get a quoted SQL value.""" 132 # XXX deal with unicode and latin1 133 if isinstance(value, str): 132 if isinstance(value, basestring): 134 133 if quoter is None: 135 134 quoter = self._getSQLQuoter() 135 if isinstance(value, str): 136 value = unicode(value, 'latin-1') 137 value = value.encode('utf-8') 136 138 return quoter(value) 137 139 elif isinstance(value, (int, long, float)): … … 145 147 logger.debug("getSQLValue: Unknown conversion for %r", value) 146 148 raise ValueError(value) 149 150 security.declarePrivate('valueFromSQL') 151 def valueFromSQL(self, value): 152 """Get a python value from a SQL one. 153 """ 154 if isinstance(value, str): 155 v = unicode(value, 'utf-8') 156 try: 157 v.encode('ascii') 158 except UnicodeEncodeError: 159 # If we don't have ascii, keep the unicode value 160 value = v 161 return value 147 162 148 163 security.declarePublic('debugTest') # XXX … … 269 284 entry = {} 270 285 for field_id in field_ids: 271 entry[field_id]= result.pop(0)272 # XXX conversions !286 value = result.pop(0) 287 entry[field_id] = self.valueFromSQL(value) 273 288 res.append((id, entry)) 274 289 … … 396 411 entry = {} 397 412 for field_id in field_ids: 398 entry[field_id]= result.pop(0)399 # XXX conversions !413 value = result.pop(0) 414 entry[field_id] = self.valueFromSQL(value) 400 415 return entry 401 416
