--- ZSQLExtend/ZSQLExtend.py 2006/04/24 16:09:52 1.82 +++ ZSQLExtend/ZSQLExtend.py 2006/05/15 08:19:01 1.84 @@ -80,6 +80,29 @@ class ZSQLExtendFolder(Folder,Persistent """quote str for sql""" return sql_quote(str) + + def normalizeField(self,table,fieldname, newFieldName=None,mode="alter", RESPONSE=None): + """normalize a field""" + import unicodedata + + if not newFieldName: + newFieldName=fieldname+"_normal" + + def normal(str): + if str: + return unicodedata.normalize('NFKD', str.decode('utf-8')).encode('ASCII', 'ignore') + else: + return "" + if mode=="create": # create the field + qstr="""alter table %s add %s %s""" + self.ZSQLSimpleSearch(qstr%(table,newFieldName,'text')) + + qstr="select oid,%s from %s"%(fieldname,table) + for result in self.ZSQLSimpleSearch(qstr): + qstr="update %s set %s = %s where oid = %s" + + self.ZSQLSimpleSearch(qstr%(table,newFieldName,self.ZSQLQuote(normal(getattr(result,fieldname))),result.oid)) + def importAccessModell(self,configFileName,RESPONSE=None): """import tables from access @param configFileName: xml-configfile @@ -815,7 +838,7 @@ class ZSQLExtendFolder(Folder,Persistent - def ZSQLAdd(self,format=None,RESPONSE=None,**argv): + def ZSQLAdd(self,format=None,RESPONSE=None,args=None,**argv): """Neuer Eintrag""" qs_temp=[] @@ -825,13 +848,18 @@ class ZSQLExtendFolder(Folder,Persistent qs=string.join(qs_temp,",") - for field in argv.keys(): + if args: + argTmp=args + else: + argTmp=argv + + for field in argTmp.keys(): if field[0]=="_": fieldTmp="-"+field[1:] else: fieldTmp=field - qs+=",%s=%s"%(fieldTmp,argv[field]) + qs+=",%s=%s"%(fieldTmp,argTmp[field]) addList={} @@ -1064,7 +1092,7 @@ class ZSQLExtendFolder(Folder,Persistent else: storename="foundCount" - return str(min(int(self.REQUEST.SESSION[storename]['rangeEnd']),int(self.REQUEST.SESSION[storename]['count']))) + return str(min(int(self.REQUEST.SESSION[storename]['rangeEnd'])+1,int(self.REQUEST.SESSION[storename]['count']))) def ZSQLNewQuery(self,linkText,storename=None,**argv): """suche neu"""