<br><br><div class="gmail_quote">2011/2/15 Daniele Varrazzo <span dir="ltr"><<a href="mailto:piro@develer.com">piro@develer.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Tue, 15 Feb 2011 15:36:03 +0100, Stefano Dal Pra <<a href="mailto:s.dalpra@gmail.com">s.dalpra@gmail.com</a>><br>
wrote:<br>
<div class="im">> saluti, sto tentando di inserire un valore bytea in una tabella di un db<br>
> postgres 8.4.7<br>
> usando psycopg2 2.2.1-1 (Python 2.6.6) e ottengo un errore. Se qualcuno<br>
ha<br>
> lumi mi puo' suggerire<br>
> il suo parere?<br>
><br>
> Descrivo il problema:<br>
><br>
> # carico un'immagine<br>
>>>> mypic=open('/home/sdp/testpic.png','r').read()<br>
><br>
> # provo a inserirla con psycopg2<br>
>>>> q.curs.execute("insert into blobs (name,file) values (%s,%s)",('UN<br>
nome<br>
> a caso',mypic,))<br>
<br>
</div>Psycopg fa una conversione in base al tipo in Python. Le stringhe vengono<br>
convertite come testo, non come binary. Credo che in Python 2.6 l'unico<br>
tipo convertito in binario sia buffer.<br>
<br>
Ma probabilmente la soluzione pių semplice č quella di usare<br>
psycopg2.Binary(mypic). Prova::<br>
<div class="im"><br>
    q.curs.execute(<br>
        "insert into blobs (name,file) values (%s,%s)",<br>
</div>        ('UN nome a caso', psycopg2.Binary(mypic),))<br></blockquote><div><br>Provato, funziona:<br><br> docetest=> select md5(file) from blobs;<br>               md5                <br>----------------------------------<br>
 771f5d3c3b264842d584bd7dfc42b2ab<br>(1 riga)<br><br>>>> gu=hashlib.md5(mypic)<br>>>> gu.hexdigest()<br>'771f5d3c3b264842d584bd7dfc42b2ab'<br><br>quindi nel db c'e' effettivamente lo stesso dato che ho inserito (meglio controllare: non si sa mail...)<br>
<br>Grazie mille! Risposta e soluzione i 5 min!<br><br>Stefano<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Noto _senza_ piacere che la soluzione pių semplice non č documentata...<br>
provvedo subito.<br>
<br>
Ciao!<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>
_______________________________________________<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>
</font></blockquote></div><br>