Loading/Retrieving bytea fields?

Started by Jerry LeVanover 21 years ago2 messagesgeneral
Jump to latest
#1Jerry LeVan
jerry.levan@eku.edu

Has anyone found some C code that shows how to load/extract data from a
bytea column?

thanks

Jerry

#2Daniel Verite
daniel@manitou-mail.org
In reply to: Jerry LeVan (#1)
Re: Loading/Retrieving bytea fields?

Jerry LeVan writes

Has anyone found some C code that shows how to load/extract data from a
bytea column?

This works for me:

int size;
const char* contents;
PGresult* res;
res = PQexecParams(pgconn,
"SELECT contents FROM tblob WHERE pkey=value",
0, NULL,NULL,NULL,NULL, /* no input parameters */
1 /* output in binary format */ );

if (res && PQresultStatus(res)==PGRES_TUPLES_OK) {
size = PQgetlength(res, 0, 0);
contents = PQgetvalue(res, 0, 0); /* binary representation */
}

I believe that you may also use the plain PQexec instead of PQexecParams,
but then you would have to call PQunescapeBytea() on the bytea column in the
results, so it's likely to be less efficient. I haven't tried that, though.

--
Daniel
PostgreSQL-powered mail user agent and storage: http://www.manitou-mail.org