|
|
| version 1.82, 2006/04/24 16:09:52 | version 1.86, 2006/05/17 21:42:19 |
|---|---|
| Line 80 class ZSQLExtendFolder(Folder,Persistent | Line 80 class ZSQLExtendFolder(Folder,Persistent |
| """quote str for sql""" | """quote str for sql""" |
| return sql_quote(str) | 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): | def importAccessModell(self,configFileName,RESPONSE=None): |
| """import tables from access | """import tables from access |
| @param configFileName: xml-configfile | @param configFileName: xml-configfile |
| Line 706 class ZSQLExtendFolder(Folder,Persistent | Line 729 class ZSQLExtendFolder(Folder,Persistent |
| except: | except: |
| return None | return None |
| def ZSQLInlineSearch(self,storename=None,**argv): | def ZSQLInlineSearch(self,storename=None,args=None,**argv): |
| """inlinesearch""" | """inlinesearch""" |
| qs=[] | qs=[] |
| Line 716 class ZSQLExtendFolder(Folder,Persistent | Line 739 class ZSQLExtendFolder(Folder,Persistent |
| storename="foundCount" | storename="foundCount" |
| if args: | |
| argTmp=args | |
| else: | |
| argTmp=argv | |
| #print "INLINE:",argv | #print "INLINE:",argv |
| for a in argv.keys(): | for a in argTmp.keys(): |
| if a[0]=="-": | |
| key="_"+a[1:] | |
| else: | |
| key=a | |
| try: | try: |
| qs.append(a+"="+urllib.quote(str(argv[a]))) | qs.append(key+"="+urllib.quote(str(argTmp[a]))) |
| except: | except: |
| import urllib | import urllib |
| qs.append(a+"="+urllib.quote(str(argv[a]))) | qs.append(key+"="+urllib.quote(str(argTmp[a]))) |
| #return [] | #return [] |
| return self.parseQueryString(string.join(qs,","),"_",storename=storename) | return self.parseQueryString(string.join(qs,","),"_",storename=storename) |
| Line 749 class ZSQLExtendFolder(Folder,Persistent | Line 780 class ZSQLExtendFolder(Folder,Persistent |
| def ZSQLSimpleSearch(self,query=None,max_rows=1000000,debug=None): | def ZSQLSimpleSearch(self,query=None,max_rows=1000000,debug=None): |
| """simple search""" | """simple search""" |
| print query | |
| if not query: | if not query: |
| query=self.query | query=self.query |
| Line 815 class ZSQLExtendFolder(Folder,Persistent | Line 846 class ZSQLExtendFolder(Folder,Persistent |
| def ZSQLAdd(self,format=None,RESPONSE=None,**argv): | def ZSQLAdd(self,format=None,RESPONSE=None,args=None,**argv): |
| """Neuer Eintrag""" | """Neuer Eintrag""" |
| qs_temp=[] | qs_temp=[] |
| Line 825 class ZSQLExtendFolder(Folder,Persistent | Line 856 class ZSQLExtendFolder(Folder,Persistent |
| qs=string.join(qs_temp,",") | 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]=="_": | if field[0]=="_": |
| fieldTmp="-"+field[1:] | fieldTmp="-"+field[1:] |
| else: | else: |
| fieldTmp=field | fieldTmp=field |
| qs+=",%s=%s"%(fieldTmp,argv[field]) | qs+=",%s=%s"%(fieldTmp,argTmp[field]) |
| addList={} | addList={} |
| Line 865 class ZSQLExtendFolder(Folder,Persistent | Line 901 class ZSQLExtendFolder(Folder,Persistent |
| else: | else: |
| return True | return True |
| def ZSQLChange(self,format=None,RESPONSE=None,USE_FORM=None,**argv): | def ZSQLChange(self,format=None,RESPONSE=None,USE_FORM=None,args=None,**argv): |
| """change entries""" | """change entries""" |
| #qs=self.REQUEST['QUERY_STRING'] | #qs=self.REQUEST['QUERY_STRING'] |
| # very bad hack | # very bad hack |
| print args | |
| qs_temp=[] | qs_temp=[] |
| if USE_FORM or RESPONSE: | if USE_FORM or RESPONSE: |
| for a in self.REQUEST.form.keys(): | for a in self.REQUEST.form.keys(): |
| qs_temp.append(a+"="+urllib.quote(str(self.REQUEST.form[a]))) | qs_temp.append(a+"="+urllib.quote(str(self.REQUEST.form[a]))) |
| if args: | |
| argTmp=args | |
| else: | |
| argTmp=argv | |
| for field in argv.keys(): | for field in argTmp.keys(): |
| if field[0]=="_": | if field[0]=="_": |
| fieldTmp="-"+field[1:] | fieldTmp="-"+field[1:] |
| else: | else: |
| fieldTmp=field | fieldTmp=field |
| qs_temp.append("%s=%s"%(fieldTmp,argv[field])) | qs_temp.append("%s=%s"%(fieldTmp,argTmp[field])) |
| changeList=[] | changeList=[] |
| Line 1064 class ZSQLExtendFolder(Folder,Persistent | Line 1104 class ZSQLExtendFolder(Folder,Persistent |
| else: | else: |
| storename="foundCount" | 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): | def ZSQLNewQuery(self,linkText,storename=None,**argv): |
| """suche neu""" | """suche neu""" |