Seite 1 von 1

Sqlite INSERT Problem

Verfasst: Montag 23. Mai 2011, 10:23
von ScooB
Hi ich habe da ein kleines Problem

Code: Alles auswählen

con = sqlite3.connect("C:\Dev\DB\ktool_test.db3")
cur = con.cursor()
cur.execute("insert into Besch_Text(Besch_DE, Besch_EN, Zusatzinfo_DE, Zusatzinfo_EN) Values('TEST', 'test', 'tester', 'teeeest')")
con.commit()
lastid = cur.lastrowid
print lastid

cur.execute("insert into Aufbauart(ID_Besch_Text)  Values(?)", (lastid,))
#cur.execute("insert into Aufbauart(ID_Besch_Text)  Values('1')")
con.commit
lastid = cur.lastrowid
print lastid
cur.close()
con.close()
und zwar führt er mir den ersten Befehl aus allerdings nicht den zweiten
Aufbauart hat nur ID und ID_Besch_Text
über lastrowid ziegt der mir dann den Wert richtig an allerding fügt er es nicht hinzu

hab bestimmt wieder irgendwo nen kleinen Denkfehler
Danke & Gruß
ScooB

Re: Sqlite INSERT Problem

Verfasst: Montag 23. Mai 2011, 10:53
von BlackJack
@ScooB: Beim zweiten mal hast Du `commit` nicht aufgerufen.

Re: Sqlite INSERT Problem

Verfasst: Montag 23. Mai 2011, 11:02
von ScooB
@BlackJack: doch habe ich direkt danach con.commit
versteh ich das richtig das wenn ich execute() benutz immer nur ein statement benutzen kann und dann commiten muss
und bei executemany() mehrere durchführe und dann commite

Re: Sqlite INSERT Problem

Verfasst: Montag 23. Mai 2011, 11:09
von lunar
@ScooB: Du hast zwar "con.commit" dastehen, aber das ist kein Aufruf. Dazu braucht es zwingend Klammern (e.g. "con.commit()")! Ohne Klammern ist das nur ein einfacher Attributzugriff, die Methode aber wird nicht aufgerufen, und folglich findet auch kein Commit statt.

Re: Sqlite INSERT Problem

Verfasst: Montag 23. Mai 2011, 11:17
von ScooB
@lunar: danke
ich bin so blöd so blöd so blöd boah ich könnt schon wieder in die Luft gehen das ist das blöde wenn man irgendwie den Kopf nicht frei bekommt

Re: Sqlite INSERT Problem

Verfasst: Montag 23. Mai 2011, 13:11
von Hyperion
Du solltest bei Pfadangaben auch besser raw-Strings nutzen:

Code: Alles auswählen

con = sqlite3.connect(r"C:\Dev\DB\ktool_test.db3")