version 1.114, 2007/04/20 06:36:01
|
version 1.115, 2007/04/20 08:33:17
|
Line 639 class ZSQLExtendFolder(Folder,Persistent
|
Line 639 class ZSQLExtendFolder(Folder,Persistent
|
return 1 |
return 1 |
return 0 |
return 0 |
|
|
def ZSQLMultiSearch(self,_table,_searchField,_value,_idField,_additionalStatement="",_select=None,_storename=None): |
def ZSQLMultiSearch(self,_table,_searchField,_value,_idField,_additionalStatement="",_select=None,_subselectAddition="",_storename=None): |
""" |
""" |
Durchsucht in einer Tabelle "table" die Spalte "searchfield" nach dem allen Vorkommnissen |
Durchsucht in einer Tabelle "table" die Spalte "searchfield" nach dem allen Vorkommnissen |
von Worten in value und gibt alle Werte mit gleichem id field zurŸck, d.h. es wird die "und" suche Ÿber mehrere Eintrsege in einer |
von Worten in value und gibt alle Werte mit gleichem id field zurŸck, d.h. es wird die "und" suche Ÿber mehrere Eintrsege in einer |
Line 664 class ZSQLExtendFolder(Folder,Persistent
|
Line 664 class ZSQLExtendFolder(Folder,Persistent
|
if not _select: |
if not _select: |
_select=_idField |
_select=_idField |
|
|
queries.append("select %s from %s %s where lower(%s) like '%%%s%%'"%(_select,_table,_additionalStatement,_searchField,splitted[0].lower())) |
query="select %s from %s %s where lower(%s) like '%%%s%%'"%(_select,_table,_additionalStatement,_searchField,splitted[0].lower()) |
|
|
if len(splitted)>1: |
if len(splitted)>1: # mehr als ein Wort |
|
query+=" and %s in"%_idField # dann einschraenken |
for v in splitted[1:]: |
for v in splitted[1:]: |
queries.append("select %s from %s where lower(%s) like '%%%s%%'"%(_idField,_table,_searchField,v.lower())) |
queries.append("select %s from %s %s where lower(%s) like '%%%s%%'"%(_idField,_table,_subselectAddition,_searchField,v.lower())) |
|
|
q=" and %s in ("%_idField |
|
query=q.join(queries) # nun baue sie zusammen |
|
for i in range(len(queries)-1): |
|
query+=")" #noch die klammern schliessen |
|
|
|
|
intersect=" intersect ".join(queries) # nun baue sie zusammen |
|
query+="(%s)"%intersect |
|
|
|
|
logging.info("ZSQLSimple: %s"%query) |
logging.info("ZSQLSimple: %s"%query) |