[Python] ADODB, Sqlserver e None
piergiorgio pancino
piertoni a yahoo.it
Mer 6 Nov 2013 12:54:39 CET
Grazie dei suggerimenti!
Sto capendo un po' di più...
Ad esempio mi pare di capire che win32com.client ADODB non crea una DB-API standard, ma una tutta sua e a questo punto ho deciso di passare a pyodbc.
Ho visto che nella costruzione della query è meglio utilizzare il formato VALUES (?,? ...) per evitare iniezioni sql; non ho ancora provato bene, ma presumo che la funzione "exec(sql,lista_dati) converta i valori None inserendo Null nella stringa sql che poi passerà al motore del database.
Se volessi fare la stessa cosa con win32com.client ADODB in maniera semplice non saprei come fare, penso che dovrei fare un parsing dei valori contenuti nella lista_dati e fare a mano la sostituzione del tipo:
sqlstring=INSERT INTO tabella VALUES ("
for element in lista_dati:
if element:
sqlstring+=str(element)+","
else:
sqlstring+="Null," #nel caso element sia None
sqlstring+=");"
Nota bene, ho fatto il codice al volo giusto per spiegare il concetto..." :)
Sono giuste queste mie considerazioni?
Grazie a tutti e tendo la mano a Enrico :)
Il Mercoledì 6 Novembre 2013 10:31, Carlo Miron <miron a python.it> ha scritto:
Il 06 novembre 2013 10:20, Fabrizio Mancini <mr.file a gmail.com> ha scritto::
> questo
> http://docs.python.org/2/library/sqlite3.html
> che ti spiega il perché del tuo errore.
E non dimenticare questo_, che ti spiega perche` e` una pessima idea non farlo.
.. [questo] <http://xkcd.com/327/>
--
© 2013
::
R
K-<M>-S
L
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20131106/a7f2f341/attachment.html>
Maggiori informazioni sulla lista
Python