Also ich hab das ganze jetz nochma genau angeschaut und wieder ein wenig mehr verstanden
So sieht der ganze Spaß bis jetz aus:
Code: Alles auswählen
#------------------------------------------------------------
def match(self, row):
data = dict((name, row[name]) for name in (self.dbCols))
if 'Max' in data.values():
return data
#------------------------------------------------------------
def get(self, args, getall = False):
'''Suche nach Kontakten
:param args: Dictionary für die Suche. Keys sind die Spalten, in denen gesucht wird; Values die Werte für die Spalten.
'''
#Erstellt den SQL-Befehl und erstellt die WHERE-Klausel wobei - falls mehrere Argumente angegeben worden sind - diese mit einem AND verknüpft werden
sql = '''SELECT %s FROM addresses''' % ', '.join(self.dbCols)
self.cur.execute(sql)
adresses = map(self.match, self.cur)
self.out(adresses)
Aufruf:
Code: Alles auswählen
adr.add('Max','Maximilian','Musterman','Herr','Musterstr 12',
'1234865','Musterstadt','Deutschland','004912326548','',
'01701234586','','','max.musterman@muster.de')
adr.add('Max II.','Maximilian','Musterman','Herr','Musterstr 12',
'1234865','Musterstadt','Deutschland','004912326548','',
'01701234586','','','max.musterman@muster.de')
adr.add('schubdidub','Umzumzumz','Murmel','aus der','Eisstr 12',
'1234865','Polar','Kino','004912326548','','01701234586','','',
'murmel.aus_dem-eis@kalterPolar.de')
adr.get({'nachname':'Musterman',})
Funktioniert auch eigentlich Super... Nur: Wenn ich map benutze: Wie kann ich bei match() noch einen Parameter übergeben?! Also den, damit ich einen String für die Suche angeben kann?
Stelle:
Code: Alles auswählen
#------------------------------------------------------------
def match(self, row):
data = dict((name, row[name]) for name in (self.dbCols))
if 'Max' in data.values(): # 'Max' <-- muss ersetzt werden - Aber wie?
return data
Ich weiß nicht, wie ich das machen kann...
Fazit: Z.Z. ist es kackegal, ob ich bei adr.get() daten übergebe oder nicht -.- Es wird eh nur der Datensatz von Max rausgesucht :'(