autsch, troubles mit NULL

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.
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 20. Oktober 2005, 19:22

Für mich sieht das sehr umständlich aus, außerdem verwende ich generell kein locals()... Hier mal eine Version, die das selbe machen sollte:

Code: Alles auswählen

    def insertTableColumnsData(self,colList,valueList):
        sql = "insert into tfoo (%(cols)s) values (%(placeholders)s)" % {
            "cols"          = ", ".join(colList),
            "placeholders"  = ", ".join(["%s"] * len(colList))
        }
        self.con.cursor().execute(sql, tuple(valueList))
        self.con.commit()
Ich hab auch mal valueList nach tuple konvertiert. Ich weiß allerdings nicht ob das zwingend notwendig ist.

EDIT: oder einfach so:

Code: Alles auswählen

    def insertTableColumnsData(self,colList,valueList):
        sql = "insert into tfoo (%s) values (%s)" % [
            ", ".join(colList), ", ".join(["%s"] * len(colList))
        ]
        self.con.cursor().execute(sql, tuple(valueList))
        self.con.commit()

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Gast

Donnerstag 20. Oktober 2005, 19:53

hi jens,

danke für deine beispiele, werde ich sicherlich in ruhe ausprobieren.
was das umständlich betrifft, sehe ich jetzt keine wesentliche unterschiede.
einfacher siehts nur aus, wenn man es falsch macht, wie ich es ursprünglich gemacht habe :D, lieber habe ich es aber richtig.

kurzum, auf den ersten blick, sieht mir das einfach nach einer geschmacksfrage aus, ob man deine oder tabellars version nimmt.

vielleicht sehe ich aber die tatsächlichen vorteile deiner version auch noch nicht.

bis bald

rolgal
Antworten