Problem mit SQL Querys

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
sprudel
User
Beiträge: 250
Registriert: Donnerstag 8. März 2007, 17:12

Hallo.
Ich bekomme folgende Meldung:

Code: Alles auswählen

self.parent.DB.execute("Delete from `demolist` where `id` = ?",(str(self.id)))
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 4 supplied.
Was hat das für einen Grund? Ich habe doch nur einen einzigen Parameter übergeben? Irgendwie versteh ich das nicht. Hoffe ihr könnt mir weiterhelfen.
Gruß sprudel
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Ist in self.id ganz sicher nur die id?

Und es könnte hifreich sein, wenn du den ganzen für den Fehler relevanten Code postest, nicht nur den letzten Befehl, der den Fehler (vermeintlich) erzeugt.

mfg, querdenker
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hi sprudel!

Code: Alles auswählen

self.parent.DB.execute("Delete from `demolist` where `id` = ?",(str(self.id),))
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Wenn ich mal raten müsste, dann ist die `self.id` eine Zeichenkette mit 4 Zeichen gewesen. Das zweite Argument muss eine Sequenz sein mit sovielen Elementen wie Platzhalter in der SQL-Anweisung stehen. Und eine Zeichenkette ist eine Sequenz von Zeichen.

Pack das eine Element einfach in ein Tupel.

Edit: So wie gerold das gezeigt hat. :-)
sprudel
User
Beiträge: 250
Registriert: Donnerstag 8. März 2007, 17:12

Da habt ihr mich ja mal wieder gerettet :-)

Hab natürlich gedacht das wäre ein Tupel.
Vielen Dank
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

sprudel hat geschrieben:

Code: Alles auswählen

str(self.id)
Warum machst du das so? Ist self.id nicht eine Zahl? Dann sollte das IMHO auch als Zahl in die DB.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
sprudel
User
Beiträge: 250
Registriert: Donnerstag 8. März 2007, 17:12

das ID-Feld ist bei mir so eingerichtet dass es auch Wörter enthalten kann, bspsw. 100a

Ich verwende auch kein Auto Increment
Antworten