On 2014-03-25 15:13, Filippo Dal Bosco - wrote:
il campo symbol è text
Perchè questo funziona
c.execute('insert into portfolio (symbol) values (?)', ('x'))
e questo NON funziona ( dice gli passo troppi valori)
c.execute('insert into portfolio (symbol) values (?)', ('xx'))
Probabilmente perchè il modulo sqlite si aspetta una sequenza come
parametri. ('xx') non è una tupla, ma una stringa tra parentesi, che è
una espressione uguale ad una stringa e basta. Una stringa *È* una
sequenza: la tua è di due elementi (due caratteri). Quindi gli sembra
che gli stai passando due parametri mentre la query ha solo un
segnaposto. bum.
Puoi usare ('xx',) che è il modo di creare una tupla di un solo
elemento, oppure ['xx'] che è una lista di un solo elemento.
Sei in buona compagnia: è l'errore più frequente commesso usando
database da Python.
-- Daniele
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python