Seite 1 von 1

Verfasst: Donnerstag 20. Oktober 2005, 19:22
von jens
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()

Verfasst: Donnerstag 20. Oktober 2005, 19:53
von Gast
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