*imbarazzato* ... :-) grazie di tutti i suggerimenti, li provero' subito!
per la cronaca questo erano le istruzioni 'a manina' che effettuavo: ++++++++++++++++++++++++++++++++++++++++++++++++++ .header ON .mode column create table pippo (a integer primary key autoincrement, b text, c text); insert into pippo (b, c) values ('12/10/2010', 'Le esperienze dell'infanzia e della prima adolescenza, insieme ai giochi che intrattenava con gli amici, saranno al centro di una successiva opera, il "Dottor Sax": la figura del Dottor Sax fu modellata da Kerouac su quella dell'Ombra, protagonista di un programma radiofonico settimanale. Nel 1939 si diploma alla "Lowell High School" e in questo anno intreccia una relazione amorosa, che non oltrepassa i confini di una casta infatuazione, con Mary Carney: questa relazione amorosa verrà rievocata in "Maggie Cassidy".'); select * from pippo; .exit ++++++++++++++++++++++++++++++++++++++++++++++++++ a presto, max Il giorno 05 novembre 2010 12:21, Daniele Varrazzo <p...@develer.com> ha scritto: > On Fri, 5 Nov 2010 09:33:08 +0100, Massimo Capanni > <massimo.capa...@gmail.com> wrote: > > > forse e' una sciocchezza ma faccio lo stesso questa domanda: > > sto cercando di implementare un semplice database con Sqlite, > > e sto facendo alcune prove a mano direttamente con Sqlite stesso. > > > > Il database di prova contiene una tabella del genere: > > > > pippo (a integer primary key autoincrement, b text, c text); > > > > Cerco di inserire del testo a caso da qualche testo ma, se > > nella copia sono presenti doppi apici o singoli apici Sqlite > > mi comunica che non è correttamente identato. Secondo > > voi dovrei implementare un controllo dell'identazione degli > > apici prima dell'inserimento, con una funzione Python, > > oppure esiste una funzione che automaticamente risolve > > questo problema durante l'input? > > Certo che esiste! E se provi a quotare a mano le stringhe, arriva la > fatina dell'SQL... e ti spezza le ditina! :) > > cursor.execute() prende due argomenti: la stringa sql con dei segnaposto > (in sqlite sono dei "?") e una sequenza di variabili: *ci pensa lui* a > metterle insieme e a gestirsi gli apici. > > >>> cur.execute("SELECT ?, ?;", (42, "l'apostrofo")).fetchone() > (42, u"l'apostrofo") > > Letture fondamentali prima di fare qualunque cosa con i database in > python: > > * la DB-API, comune a tutti i moduli database python di qualche rilevanza > http://www.python.org/dev/peps/pep-0249/ > * http://en.wikipedia.org/wiki/SQL_injection > * http://xkcd.com/327/ > > Nella doc di psycopg ci sono più dettagli su perché la fatina dell'SQL si > arrabbia (ti ho già detto che è pelosa?): > < > http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries > >. > Fai le dovute differenze perché psycopg usa "%s" invece di "?" come > segnaposto. > > A presto! > > -- > Daniele Varrazzo - Develer S.r.l. > http://www.develer.com > _______________________________________________ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python >
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python