On 2014-03-25 15:13, Filippo Dal Bosco - wrote:
il campo symbol è textPerchè 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 [email protected] http://lists.python.it/mailman/listinfo/python
