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""" |