(Python) SQLite, no such column:?

ZaoDaDong  03.09.2022, 07:55

Kann es vielleicht sein, dass die Spalte "Preis" heißt und nicht "preis" ?
Es geht hier um eine Spalte die angeblich nicht da ist, keine Tabelle.
Die Tabelle heißt "gewinnspiel"

PHLMinions 
Beitragsersteller
 03.09.2022, 15:54

Hey,

ja meine Tabelle heißt „gewinnspiel“ und darin befindet sich eine Spalte die „preis“ heißt.

LG

Hanibal545  03.09.2022, 11:26

Warum speicherst du preis eigentlich als txt und nicht als int ab?

PHLMinions 
Beitragsersteller
 03.09.2022, 15:52

Hey,

weil ich den Namen speichern möchte, falls der Bot offline ist, kennt er den Namen ja nicht mehr.

Lg

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Kenn mich mit Python nicht aus, bin mir aber nicht sicher, ob ein f vor einer Zeichenkette günstig angesiedelt ist.


FaTech  03.09.2022, 06:27

f steht für format oder so. In C# wäre es das $ symbol zum beispiel. Damit kann man variablen in den string schreiben, ohne per + zu verketten

0
Suboptimierer  03.09.2022, 06:36
@FaTech

Möglicherweise liegen irgendwelche Trigger auf dem Insert der Tabelle. Dort könnte der Fehler verborgen sein.

In deinem Befehl verwendest du augenscheinlich keine Spalte namens "test".

0
PHLMinions 
Beitragsersteller
 03.09.2022, 06:40
@Suboptimierer

Hey,

test, ist mein Output. Ich kann es dir mal so erklären, ich gebe etwas ein, in dem Fall „Test“ und möchte das „test“ in die Unterkategorie preis gespeichert werden soll, leider kommt hierbei der Fehler. Lg

0
Suboptimierer  03.09.2022, 06:41
@PHLMinions

Dann hast du wahrscheinlich vergessen, "test" in Anführungszeichen zu setzen. Deswegen interpretiert der SQL-Interpreter es als Spalte.

0
PHLMinions 
Beitragsersteller
 03.09.2022, 06:43
@Suboptimierer

self.children[1].value, ist bereits der Text der gespeichert werden soll, das ist bereits in ein String.

0
Suboptimierer  03.09.2022, 06:46
@PHLMinions

Aber das scheint der execute nicht zu wissen.

Probier es doch einfach mal aus. Das geht doch schnell. Solche Dinge würde ich nicht zerdenken.

Schreib entweder

...2}, \"{self.children[1].value}\")")...

oder vor dem Befehl

self.children[1].value = "\"" + self.children[1].value + "\""
1
PHLMinions 
Beitragsersteller
 03.09.2022, 18:21
@Suboptimierer

Hey, dann kommt dieser Fehler..

  cursor.execute(f"INSERT INTO gewinnspiel(zeit, preis) VALUES({Zeit_Times2}, \"" + self.children[1].value + "\"")     
sqlite3.OperationalError: incomplete input 

LG

0
G3raltVonRiva  03.09.2022, 07:10

Nennt sich „String Interploation“

0

Da müsste man etwas mehr vom Quelltext sehen.

Denn die Meldung sagt "no such column: test". Das bedeutet, dass versucht wird, eine Tabellenspalte namens "test" anzusprechen, die es aber nicht gibt.

Dieser Name "test" muss irgendwoher kommen. Woher der kommt, kann man an deiner Anweisung aber nicht erkennen.


PHLMinions 
Beitragsersteller
 03.09.2022, 15:51

Hey,

es gibt Tabellenspalte „test“, „test“ ist in dem Fall was ich speichern möchte.

LG

0