version 1.64, 2005/10/10 15:34:50
|
version 1.69, 2005/10/14 15:08:18
|
Line 42 def sql_quote(v):
|
Line 42 def sql_quote(v):
|
quote_dict = {"\'": "''", "\\": "\\\\"} |
quote_dict = {"\'": "''", "\\": "\\\\"} |
for dkey in quote_dict.keys(): |
for dkey in quote_dict.keys(): |
if string.find(v, dkey) >= 0: |
if string.find(v, dkey) >= 0: |
v=join(split(v,dkey),quote_dict[dkey]) |
v=string.join(string.split(v,dkey),quote_dict[dkey]) |
return "'%s'" % v |
return "'%s'" % v |
|
|
def showSQLConnectionIDs(self): |
def showSQLConnectionIDs(self): |
Line 231 class ZSQLExtendFolder(Folder,Persistent
|
Line 231 class ZSQLExtendFolder(Folder,Persistent
|
return ret |
return ret |
|
|
|
|
def ZSQLOptionsFromCRList(self,fieldname,listField, multiple='',start=None,startValue=None,size=None): |
def ZSQLOptionsFromCRList(self,fieldname,listField, multiple='',start=None,startValue=None,size=None,selected=None): |
"""generate select oprions form a cr seperated list""" |
"""generate select oprions form a cr seperated list""" |
fields=listField.split("\n") |
fields=listField.split("\n") |
if size: |
if size: |
Line 249 class ZSQLExtendFolder(Folder,Persistent
|
Line 249 class ZSQLExtendFolder(Folder,Persistent
|
|
|
ret+="""<option value="%s" >%s</option>"""%(startValue,start) |
ret+="""<option value="%s" >%s</option>"""%(startValue,start) |
for field in fields: |
for field in fields: |
|
if selected and (field in selected.split("\n")): |
|
ret+="""<option selected value="%s">%s</option>"""%(field.encode('utf-8'),field.encode('utf-8')) |
|
else: |
ret+="""<option value="%s">%s</option>"""%(field.encode('utf-8'),field.encode('utf-8')) |
ret+="""<option value="%s">%s</option>"""%(field.encode('utf-8'),field.encode('utf-8')) |
ret+="""</select>""" |
ret+="""</select>""" |
return ret |
return ret |
Line 345 class ZSQLExtendFolder(Folder,Persistent
|
Line 348 class ZSQLExtendFolder(Folder,Persistent
|
"""inlinesearch""" |
"""inlinesearch""" |
qs=[] |
qs=[] |
|
|
|
|
|
|
#print "INLINE:",query |
#print "INLINE:",query |
return self.ZSQLSimpleSearch(query) |
return self.ZSQLSimpleSearch(query) |
|
|
Line 358 class ZSQLExtendFolder(Folder,Persistent
|
Line 359 class ZSQLExtendFolder(Folder,Persistent
|
query=self.query |
query=self.query |
|
|
if (hasattr(self,"_v_searchSQL") and (self._v_searchSQL == None)) or (not hasattr(self,"_v_searchSQL")): |
if (hasattr(self,"_v_searchSQL") and (self._v_searchSQL == None)) or (not hasattr(self,"_v_searchSQL")): |
self._v_searchSQL=Shared.DC.ZRDB.DA.DA("_v_searchSQL","_v_searchSQL",self.connection_id,"var","<dtml-var var>") |
|
|
self._v_searchSQL=Shared.DC.ZRDB.DA.DA("_v_searchSQL","_v_searchSQL",self.getConnectionObj().getId(),"var","<dtml-var var>") |
|
|
self._v_searchSQL.max_rows_=max_rows |
self._v_searchSQL.max_rows_=max_rows |
try: |
try: |
Line 367 class ZSQLExtendFolder(Folder,Persistent
|
Line 369 class ZSQLExtendFolder(Folder,Persistent
|
except : |
except : |
if sys.exc_info()[0]=="Database Error": |
if sys.exc_info()[0]=="Database Error": |
try: |
try: |
getattr(self,self.connection_id).manage_open_connection() |
self.getConnectionObj().manage_open_connection() |
except: pass |
except: |
|
zLOG.LOG("ZSQLSimpleSearch",zLOG.ERROR, '%s %s'%sys.exc_info()[:2]) |
else: |
else: |
try: |
try: |
self._v_searchSQL.max_rows_=max_rows |
self._v_searchSQL.max_rows_=max_rows |
Line 377 class ZSQLExtendFolder(Folder,Persistent
|
Line 380 class ZSQLExtendFolder(Folder,Persistent
|
except : |
except : |
if sys.exc_info()[0]=="Database Error": |
if sys.exc_info()[0]=="Database Error": |
try: |
try: |
getattr(self,self.connection_id).manage_open_connection() |
self.getConnectionObj().manage_open_connection() |
except: pass |
except: |
|
zLOG.LOG("ZSQLSimpleSearch",zLOG.ERROR, '%s %s'%sys.exc_info()[:2]) |
|
|
|
def getConnectionObj(self): |
|
if hasattr(self,'connection_id'): |
|
return getattr(self,self.connection_id) |
|
|
|
|
def ZSQLSimpleSearch2(self,query=None): |
def ZSQLSimpleSearch2(self,query=None): |
""" returrn SQLSearch""" |
""" returrn SQLSearch""" |
#print "hi",query |
|
if not query: |
if not query: |
query=self.query |
query=self.query |
if getattr(self,'_v_search',None): |
if getattr(self,'_v_search',None): |
Line 406 class ZSQLExtendFolder(Folder,Persistent
|
Line 415 class ZSQLExtendFolder(Folder,Persistent
|
|
|
|
|
|
|
def ZSQLAdd(self): |
def ZSQLAdd(self,format=None,RESPONSE=None,**argv): |
"""Neuer Eintrag""" |
"""Neuer Eintrag""" |
qs=self.REQUEST['QUERY_STRING'] |
|
|
qs_temp=[] |
|
|
|
for a in self.REQUEST.form.keys(): |
|
qs_temp.append(a+"="+urllib.quote(str(self.REQUEST.form[a]))) |
|
|
|
qs=string.join(qs_temp,",") |
|
|
|
for field in argv.keys(): |
|
if field[0]=="_": |
|
fieldTmp="-"+field[1:] |
|
else: |
|
fieldTmp=field |
|
|
|
qs+=",%s=%s"%(fieldTmp,argv[field]) |
|
|
|
|
addList={} |
addList={} |
for q in qs.split("&"): |
for q in qs.split(","): |
name=re.sub("r'+'"," ",q.split("=")[0].lower()) |
name=re.sub("r'+'"," ",q.split("=")[0].lower()) |
value=q.split("=")[1] |
value=q.split("=")[1] |
value=re.sub(r'\+'," ",value) |
value=re.sub(r'\+'," ",value) |
Line 419 class ZSQLExtendFolder(Folder,Persistent
|
Line 444 class ZSQLExtendFolder(Folder,Persistent
|
table=urllib.unquote(value) |
table=urllib.unquote(value) |
elif name=="-format": |
elif name=="-format": |
format=urllib.unquote(value) |
format=urllib.unquote(value) |
elif (not name[0]=="-") and (not len(value)==0): |
elif (not (name[0]=="-" or name[0]=="_")) and (not len(value)==0): |
addList[urllib.unquote(name)]=urllib.unquote(value) |
addList[urllib.unquote(name)]=urllib.unquote(value) |
|
|
keyList=[] |
keyList=[] |
Line 432 class ZSQLExtendFolder(Folder,Persistent
|
Line 457 class ZSQLExtendFolder(Folder,Persistent
|
valueString=string.join(valueList,",") |
valueString=string.join(valueList,",") |
|
|
queryString="INSERT INTO %s (%s) VALUES (%s)"%(table,keyString,valueString) |
queryString="INSERT INTO %s (%s) VALUES (%s)"%(table,keyString,valueString) |
|
|
self.ZSQLSimpleSearch(queryString) |
self.ZSQLSimpleSearch(queryString) |
return self.REQUEST.RESPONSE.redirect(format) |
|
|
|
def ZSQLChange(self,format=None,RESPONSE=None,**argv): |
if RESPONSE and format: |
|
return RESPONSE.redirect(format) |
|
else: |
|
return True |
|
|
|
def ZSQLChange(self,format=None,RESPONSE=None,USE_FORM=None,**argv): |
"""change entries""" |
"""change entries""" |
#qs=self.REQUEST['QUERY_STRING'] |
#qs=self.REQUEST['QUERY_STRING'] |
# very bad hack |
# very bad hack |
|
|
qs_temp=[] |
qs_temp=[] |
|
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]))) |
|
|
qs=string.join(qs_temp,",") |
|
|
|
for field in argv.keys(): |
for field in argv.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_temp.append("%s=%s"%(fieldTmp,argv[field])) |
|
|
|
|
|
qs=string.join(qs_temp,",") |
changeList=[] |
changeList=[] |
|
|
for q in qs.split(","): |
for q in qs.split(","): |
print q |
|
name=urllib.unquote(re.sub("r'+'"," ",q.split("=")[0].lower())) |
name=urllib.unquote(re.sub("r'+'"," ",q.split("=")[0].lower())) |
value="=".join(q.split("=")[1:]) |
value="=".join(q.split("=")[1:]) |
value=re.sub(r'\+'," ",value) |
value=re.sub(r'\+'," ",value) |
Line 471 class ZSQLExtendFolder(Folder,Persistent
|
Line 503 class ZSQLExtendFolder(Folder,Persistent
|
identify=identify.split("=")[0]+"="+sql_quote(identify.split("=")[1]) |
identify=identify.split("=")[0]+"="+sql_quote(identify.split("=")[1]) |
elif name=="-format": |
elif name=="-format": |
format=urllib.unquote(value) |
format=urllib.unquote(value) |
elif (not name[0]=="-") and (not len(value)==0): |
elif (not (name[0]=="-" or name[0]=="_")) and (not len(value)==0): |
changeList.append("\""+name+"\"="+sql_quote(urllib.unquote(value))) |
changeList.append("\""+name+"\"="+sql_quote(urllib.unquote(value))) |
|
|
changeString=string.join(changeList,",") |
changeString=string.join(changeList,",") |
queryString="UPDATE %s SET %s WHERE %s"%(table,changeString,identify) |
queryString="UPDATE %s SET %s WHERE %s"%(table,changeString,identify) |
|
|
self.ZSQLSimpleSearch(queryString) |
self.ZSQLSimpleSearch(queryString) |
|
|
|
|
Line 935 class ZSQLExtendFolder(Folder,Persistent
|
Line 968 class ZSQLExtendFolder(Folder,Persistent
|
else: |
else: |
return value |
return value |
|
|
def ZSQLQuery(self,query): |
def ZSQLQuery(self,query,debug=None): |
"""query""" |
"""query""" |
|
if debug: |
|
zLOG.LOG("ZSQLQuery", zLOG.INFO, query) |
|
|
return self.ZSQLSimpleSearch(query) |
return self.ZSQLSimpleSearch(query) |
|
|
Line 1341 class ZSQLBibliography(Folder,ZSQLExtend
|
Line 1376 class ZSQLBibliography(Folder,ZSQLExtend
|
else: |
else: |
return "" |
return "" |
|
|
def getMetaDataXML2(self): |
def getXML2(self): |
"""crate index meta""" |
"""crate index meta""" |
|
|
fn=os.path.splitext(self.REQUEST['fn'])[0]+"." |
fn=os.path.splitext(self.REQUEST['fn'])[0]+"." |