[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue-common/src/datasources/drivers/appserver/a...
From: |
Reinhard Mueller |
Subject: |
gnue-common/src/datasources/drivers/appserver/a... |
Date: |
Sat, 18 Oct 2003 15:07:53 -0400 |
CVSROOT: /cvsroot/gnue
Module name: gnue-common
Branch:
Changes by: Reinhard Mueller <address@hidden> 03/10/18 15:07:53
Modified files:
src/datasources/drivers/appserver/appserver: Driver.py
Log message:
Recode data to utf-8 just before it is posted to the server, so that
all data
in the driver's cache remains coded in the original text encoding. This
fixes
inserting new records containing non-ASCII data.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/datasources/drivers/appserver/appserver/Driver.py.diff?tr1=1.21&tr2=1.22&r1=text&r2=text
Patches:
Index: gnue-common/src/datasources/drivers/appserver/appserver/Driver.py
diff -c gnue-common/src/datasources/drivers/appserver/appserver/Driver.py:1.21
gnue-common/src/datasources/drivers/appserver/appserver/Driver.py:1.22
*** gnue-common/src/datasources/drivers/appserver/appserver/Driver.py:1.21
Fri Oct 10 07:36:12 2003
--- gnue-common/src/datasources/drivers/appserver/appserver/Driver.py Sat Oct
18 15:07:52 2003
***************
*** 175,230 ****
self._updateList[classname]=[]
self._updateKeyList[classname]=[]
- # convert data to transfer encoding (utf-8)
- for key in fieldDict.keys():
- value=fieldDict[key]
-
- # convert Strings from local encoding to 'utf-8'
- if type(value) == types.StringType:
- fieldDict[key] =
unicode(value,gConfig('textEncoding')).encode('utf-8')
-
- # raise Warning if running in unicode mode
- if self._unicodeMode:
- GDebug.printMesg(0,'WARNING: non-unicode passed to the dbdriver
(%s)' % value)
-
- # recode unicode strings to 'utf-8'
- elif type(value) == types.UnicodeType:
- fieldDict[key] = value.encode('utf-8')
-
self._updateList[classname].append(fieldDict)
self._updateKeyList[classname].append(id)
! def execute(self,classname):
! #try:
! if self._deleteList.has_key(classname):
! result = self._dataCon._sm.delete(self._dataCon._sess_id,classname,
! self._deleteList[classname])
!
! self._deleteList[classname]=[]
!
! #except:
! # return
! # try:
! while len(self._updateList[classname]):
id = self._updateKeyList[classname].pop()
dict = self._updateList[classname].pop()
# TODO: merge calls with similar updated fields (=dict.values())
! result =
self._dataCon._sm.store(self._dataCon._sess_id,classname,[id],
! dict.keys(),[dict.values()])
!
! self._updateList[classname]=[]
! self._updateKeyList[classname]=[]
! #except:
! # return
!
! def revert(self,classname):
! if self._deleteList.has_key(classname):
! self._deleteList[classname]=[]
! if self._updateList.has_key(classname):
! self._updateList[classname]=[]
! self._updateKeyList[classname]=[]
class Appserver_RecordSet(GDataObjects.RecordSet):
--- 175,218 ----
self._updateList[classname]=[]
self._updateKeyList[classname]=[]
self._updateList[classname].append(fieldDict)
self._updateKeyList[classname].append(id)
! # convert a string or a unicode string to utf-8
! def _to_utf_8 (self, s):
! if type (s) == types.StringType:
! if self._unicodeMode:
! msg = 'WARNING: non-unicode passed to the dbdriver (%s)' % value
! GDebug.printMesg (0, msg)
! s = unicode (s, gConfig ('textEncoding'))
! if type (s) == types.UnicodeType:
! s = s.encode ('utf-8')
! return s
! def execute (self, classname):
! if self._deleteList.has_key (classname):
! result = self._dataCon._sm.delete (self._dataCon._sess_id, classname,
! self._deleteList [classname])
! del self._deleteList [classname]
!
! if self._updateList.has_key (classname):
! while len (self._updateList [classname]):
id = self._updateKeyList[classname].pop()
dict = self._updateList[classname].pop()
# TODO: merge calls with similar updated fields (=dict.values())
! data = [self._to_utf_8 (x) for x in dict.values ()]
! result = self._dataCon._sm.store (self._dataCon._sess_id, classname,
! [id], dict.keys(), [data])
!
! del self._updateList [classname]
! del self._updateKeyList [classname]
! def revert (self, classname):
! if self._deleteList.has_key (classname):
! del self._deleteList [classname]
! if self._updateList.has_key (classname):
! del self._updateList [classname]
! del self._updateKeyList [classname]
class Appserver_RecordSet(GDataObjects.RecordSet):
- gnue-common/src/datasources/drivers/appserver/a..., Jan Ischebeck, 2003/10/07
- gnue-common/src/datasources/drivers/appserver/a..., Jan Ischebeck, 2003/10/07
- gnue-common/src/datasources/drivers/appserver/a..., Jan Ischebeck, 2003/10/10
- gnue-common/src/datasources/drivers/appserver/a...,
Reinhard Mueller <=
- gnue-common/src/datasources/drivers/appserver/a..., Reinhard Mueller, 2003/10/18
- gnue-common/src/datasources/drivers/appserver/a..., Reinhard Mueller, 2003/10/18
- gnue-common/src/datasources/drivers/appserver/a..., Reinhard Mueller, 2003/10/18
- gnue-common/src/datasources/drivers/appserver/a..., Reinhard Mueller, 2003/10/18
- gnue-common/src/datasources/drivers/appserver/a..., Reinhard Mueller, 2003/10/19
- gnue-common/src/datasources/drivers/appserver/a..., Reinhard Mueller, 2003/10/19