From: <tre...@us...> - 2010-09-05 12:48:07
|
Revision: 311 http://spd.svn.sourceforge.net/spd/?rev=311&view=rev Author: treibholz Date: 2010-09-05 12:48:01 +0000 (Sun, 05 Sep 2010) Log Message: ----------- searchEntry implemented Modified Paths: -------------- branches/spd-ng/src/spdCore.py Modified: branches/spd-ng/src/spdCore.py =================================================================== --- branches/spd-ng/src/spdCore.py 2010-09-05 12:23:53 UTC (rev 310) +++ branches/spd-ng/src/spdCore.py 2010-09-05 12:48:01 UTC (rev 311) @@ -5,9 +5,11 @@ class Core(object): # create the database from the stuff out of the store - def __init__(self,ConfigSection='Main'): # {{{ + def __init__(self,ConfigSection='Main',PasswordColumn='Password'): # {{{ self.ConfigSection = ConfigSection + self.PasswordColumn = PasswordColumn self.db = sqlite3.connect('test.db') + self.db.row_factory = self.__sql2dict self.dbc = self.db.cursor() self.deletedColumns = [] @@ -15,13 +17,47 @@ # }}} # Writes back to the Store - def __del__(self): + def __del__(self): # {{{ self.db.commit() + #}}} + def __sql2dict(self,cursor,row): # {{{ + result = {} + for ColumnNr, Column in enumerate(cursor.description): + result[Column[0]] = row[ColumnNr] + return result + + # }}} + def searchEntry(self,SearchList): - pass + + query = 'select * from ' + self.ConfigSection + ' where ' + + # Build the where-clause + for pattern in SearchList: + query += '(' + + for i in self.getColumns(): + if i != self.PasswordColumn: + query += i + " like '%" + pattern + "%' or " + + query = query[0:-4] + ') and ' + query = query[0:-5] + + # Execute the query + self.dbc.execute(query) + + result = {} + for i in self.dbc: + for j in i: + try: + result[j].append(i[j]) + except KeyError: + result[j] = [i[j]] + + return result def addEntry(self,NewDict): # {{{ query = 'insert into ' + self.ConfigSection + '( ' @@ -37,20 +73,22 @@ # }}} - def delEntry(self,ID): + def delEntry(self,ID): # {{{ query = 'delete from '+ self.ConfigSection +' where __ID='+str(ID) self.dbc.execute(query) + # }}} def getColumns(self): # {{{ + query = "pragma Table_info('" + self.ConfigSection + "')" self.dbc.execute(query) result = [] for i in self.dbc: - if i[1] not in self.deletedColumns: - result.append(i[1]) + if i['name'] not in self.deletedColumns: + result.append(i['name']) return result This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |