mal wieder *args

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

mal wieder *args

Beitragvon murph » Freitag 30. Juni 2006, 23:48

hi!
ich habe jetzt bei meinem code das problem, dass ich nunmal *args annehmen muss:

Code: Alles auswählen

    def execute(self,uid, sql, *args):
        print sql, args
        self.cur[uid].execute(sql, args)
        self.fetched = self.cur[uid].fetchall()
        self.conn[uid].commit()
        return self.fetched

die args sind immer die variablen, die seperat für die dbapi übergeben werden, hab wegen sqlinjection umgestellt :-)
aber nun habe ich den fall, dass ich einfach nur eine tabelle erstellen möchte, deren namen aber schon fest ist! nun habe ich keine args und werde mit einem keyerror bedankt...oder sehe ich da was im falschen zusammenhang?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: mal wieder *args

Beitragvon gerold » Samstag 1. Juli 2006, 07:39

murph hat geschrieben:nun habe ich keine args und werde mit einem keyerror bedankt...oder sehe ich da was im falschen zusammenhang?

Hi murph!

Code: Alles auswählen

In [1]: def hallo(sql, *args):
   ...:     print sql
   ...:     print args
   ...:
In [2]: hallo("a", "b", "c")
a
('b', 'c')
In [3]: hallo("a")
a
()

Wie man in diesem Code gut sieht, ist die Variable "args" ein Tuppel. Du musst also nur prüfen, ob etwas im Tuppel steht, oder nicht. (len(args))
Wenn nicht, dann brauchst du "args" auch nicht an die andere Funktion übergeben.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Beitragvon murph » Samstag 1. Juli 2006, 08:24

mal wieder nlichts, nach anderthalb stunden dahintergekommen, dass man cur.fetchall() nur einmal abfragen kann und danach gelöscht wird.
hatte vorher dann immer mit einer leeren liste zu kömpfen x,X

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder