[Python] delimitatori testo in sqlite

Daniele Varrazzo piro a develer.com
Ven 5 Nov 2010 15:12:41 CET


On Fri, 5 Nov 2010 14:36:59 +0100, "Vittorio Zuccala'"
<vittorio.zuccala a gmail.com> wrote:

> Le istruzioni sono corrette.
> Il problema sta nel fatto che se metti gli apici singoli per risolvere
il
> fatto che Dottor Sax e altri hanno i doppi apici... non devi mettere
altri
> singoli apici, sebbene nella nostra lingua possa essere apostrofi dentro
la
> frase.

Stai scherzando, vero? Vorresti dire che in un database non si possono
mettere apostrofi?

No, le istruzioni postate *non* sono corrette: l'espressione sql "insert
[...] values ('l'apostrofo')" è un errore di sintassi sql e la correzione
non è "insert ('lo apostrofo')": questa è una trasformazione semantica e
immette dati diversi da quelli desiderati. La sintassi accettata da molti
database è quella di raddoppiare gli apostrofi (altri meccanismi per altri
database): "insert [...] values ('l''apostrofo')" è sia corretto come
sintassi sql sia fa quello che deve fare.

In ottica di Python poi, visto che quest'ultimo ha un modo diverso di
ricevere in input una costante stringa ('l\'apostrofo' o "l'apostrofo"...)
occorre una trasformazione (ma sintattica, non semantica) che converta un
oggetto stringa python in una rappresentazione stringa sql, e il driver è
l'unico oggetto che si deve occupare di questa trasformazione.

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com


Maggiori informazioni sulla lista Python