<br>*imbarazzato* ... :-)<br><br>grazie di tutti i suggerimenti, li provero' subito!<br><br>per la cronaca questo erano le istruzioni 'a manina' che effettuavo:<br><br>++++++++++++++++++++++++++++++++++++++++++++++++++<br>
<br>.header ON<br>.mode column <br><br>create table pippo (a integer primary key autoincrement, b text, c text);<br><br>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".');<br>
<br>select * from pippo;<br>.exit<br><br>++++++++++++++++++++++++++++++++++++++++++++++++++<br><br>a presto,<br><br>max<br><br><div class="gmail_quote">Il giorno 05 novembre 2010 12:21, Daniele Varrazzo <span dir="ltr"><<a href="mailto:piro@develer.com">piro@develer.com</a>></span> ha scritto:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div></div><div class="h5">On Fri, 5 Nov 2010 09:33:08 +0100, Massimo Capanni<br>
<<a href="mailto:massimo.capanni@gmail.com">massimo.capanni@gmail.com</a>> wrote:<br>
<br>
> forse e' una sciocchezza ma faccio lo stesso questa domanda:<br>
> sto cercando di implementare un semplice database con Sqlite,<br>
> e sto facendo alcune prove a mano direttamente con Sqlite stesso.<br>
><br>
> Il database di prova contiene una tabella del genere:<br>
><br>
> pippo (a integer primary key autoincrement, b text, c text);<br>
><br>
> Cerco di inserire del testo a caso da qualche testo ma, se<br>
> nella copia sono presenti doppi apici o singoli apici Sqlite<br>
> mi comunica che non è correttamente identato. Secondo<br>
> voi dovrei implementare un controllo dell'identazione degli<br>
> apici prima dell'inserimento, con una funzione Python,<br>
> oppure esiste una funzione che automaticamente risolve<br>
> questo problema durante l'input?<br>
<br>
</div></div>Certo che esiste! E se provi a quotare a mano le stringhe, arriva la<br>
fatina dell'SQL... e ti spezza le ditina! :)<br>
<br>
cursor.execute() prende due argomenti: la stringa sql con dei segnaposto<br>
(in sqlite sono dei "?") e una sequenza di variabili: *ci pensa lui* a<br>
metterle insieme e a gestirsi gli apici.<br>
<br>
>>> cur.execute("SELECT ?, ?;", (42, "l'apostrofo")).fetchone()<br>
(42, u"l'apostrofo")<br>
<br>
Letture fondamentali prima di fare qualunque cosa con i database in<br>
python:<br>
<br>
* la DB-API, comune a tutti i moduli database python di qualche rilevanza<br>
<a href="http://www.python.org/dev/peps/pep-0249/" target="_blank">http://www.python.org/dev/peps/pep-0249/</a><br>
* <a href="http://en.wikipedia.org/wiki/SQL_injection" target="_blank">http://en.wikipedia.org/wiki/SQL_injection</a><br>
* <a href="http://xkcd.com/327/" target="_blank">http://xkcd.com/327/</a><br>
<br>
Nella doc di psycopg ci sono più dettagli su perché la fatina dell'SQL si<br>
arrabbia (ti ho già detto che è pelosa?):<br>
<<a href="http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries" target="_blank">http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries</a>>.<br>
Fai le dovute differenze perché psycopg usa "%s" invece di "?" come<br>
segnaposto.<br>
<br>
A presto!<br>
<font color="#888888"><br>
--<br>
Daniele Varrazzo - Develer S.r.l.<br>
<a href="http://www.develer.com" target="_blank">http://www.develer.com</a><br>
</font><div><div></div><div class="h5">_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
</div></div></blockquote></div><br>