[Zope-DB] Adding and retrieving files from PostgreSQL with ZPsycopgDA

Charlie Clark charlie at egenix.com
Sat Jul 1 07:26:49 EDT 2006

Maciej Zięba wrote:
> Hi :)
> I wanted to ask if there's any way to send a file to PostgreSQL database?
> The file I have is taken from REQUEST, from multipart form. I need to
> send it to the database and later retrieve it when needed. I guess I
> should use the bytea field and an Z SQL Methods.
> But how can I send the file? - dtml-sqlvar can only be of "string",
> "int", "float" or "nb" type. How should the method's template look like?

Use string because no type-checking is involved.

> And how do I get the bytes back and re-create the file object?

This crops up occasionally on the list so search the archives for examples.

> I guess what I need to know is how you send binary data with ZPsycopgDA...

Because of the way Zope talks to databases you might run into the 
problem that the generated SQL is too big in which case you might want 
to use an ExternalMethod to handle the call. I don't think that 
ZPscopgDA allows you to call .execute on connections so if this is 
necessary and you want to avoid writing a lot of code, you might want to 
try the mxODBCZopeDA which makes writing this kind of code a doddle. 
Again searcg the archives for some examples.

> I really need help with this :-( Any suggestions are really, really
> welcome. If there's any more information needed please let me know.


More information about the Zope-DB mailing list