Forum >> Programmazione Python >> Database >> Messaggio di errore : sqlite3.OperationalError: near "INTEGER": syntax error

Pagina: 1

Buonasera, cosa potrebbe essere sbagliato nella riga



s.execute("INSERT INTO Sellout(id_se INTEGER , codice INTEGER , Prezzo Pub FLOAT , Costo FLOAT , Num Promo TEXT , sconto FLOAT , Prezzo Scontato FLOAT) VALUES (? ,? ,? ,? , ? , ? , ?)",(sellout_trovatoa0 , sellout_trovatoa1 , b , b ,sellout_trovatoa2 ,sellout_trovatoa3 ,sellout_trovatoa4))
per dare il seguente messaggio :




sqlite3.OperationalError: near "INTEGER": syntax error




i dati che scrivo "sarebbero" :




3 175632 121.01 121.01 o20214394p 106.0 599.0




Tenete conto che la sequenza dei nomo delle colonne della tabella è stata presa copiando la giga che ha creato la tabelle stesso, quindi i nomi sono corretti.




Grazie
------
Alberto
Buonasera, cosa potrebbe essere sbagliato nella riga ...
La riga stessa, temo, non è un costrutto SQL valido, tipicamente, una istruzione di inserimento nuovo record sarebbe qualcosa del genere:

INSERT INTO nome_tabella [(nome_campo, nome_campo, ...)]
VALUES (valore, valore, ...)

il "nome_campo" tra parentesi quadre stanno ad indicare una certa opzionalità.

Edit dimenticavo, la tipologia di dato è definita in fase di creazione della tavola, non va indicata nella query di inserimento, è il particolare che ti da errore, nel caso in specie.



Il linguaggio di interrogazione dati SQL ha sintassi ben precise, purtroppo "personalizzato" in vari "dialetti". Tale sintassi è quasi comparabile a quella di un linguaggio di programmazione, se lo si vuole utilizzare bisogna conoscerlo.

Per altro, la sintassi di Sqlite3 permette di utilizzare delle specie di "segnaposto" ("?" p.e.) che facilitano le operazioni sollevando dalla parte di sintassi relativa alla tipologie dei dati.

In giro si trova parecchio in merito, comunque qui una spiegazione abbastanza chiara su "INSERT", anche se incompleta, pur se più ostica non trascurare la .documentazione ufficiale.

Ciao



--- Ultima modifica di nuzzopippo in data 2022-05-11 20:14:02 ---
Fatti non foste a viver come bruti...
Buonasera, grazie Nuzzopippo.... togliendo le specifiche descrittive del campo dalla riga di insert il tutto ha funzionato.
Io avevo utilizzato la riga con la stessa struttura (tra l'altro presa in prestito da un esempio dal web) su un altro programmino di prova ed aveva funzionato perfettamente, quindi non mi ponevo proprio il dubbio che l'errore fosse qui.




Grazie ancora per gancio verso la soluzione.



------
Alberto


Pagina: 1



Esegui il login per scrivere una risposta.