/* Convert integer value "2" to network byte order */
binaryIntVal = htonl((uint32_t) 2);
/* Set up parameter arrays for PQexecParams */
paramValues[0] = (char *) &binaryIntVal;
paramLengths[0] = sizeof(binaryIntVal);
paramFormats[0] = 1; /* binary */
...
seems a bit convoluted.
In particular I was looking for an example of setting up a string
parameter for PQexecParams, assuming that is possible.
strings don't need to be passed in binary, so its a lot simpler.
see example 30-3 on
http://www.postgresql.org/docs/current/static/libpq-example.html
const char *paramValues[1];
/* Here is our out-of-line parameter value */
paramValues[0] = "joe's place";
res = PQexecParams(conn,
"SELECT * FROM test1 WHERE t = $1",
1, /* one param */
NULL, /* let the backend deduce param type */
paramValues,
NULL, /* don't need param lengths since text */
NULL, /* default to all text params */
0); /* ask for text results */
--
Sent via pgsql-general mailing list (pgsql-...@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
check out libpqtypes (http://libpqtypes.esilo.com). It does all the
binary stuff for you (which you don't need to to with PQexecParams).
with libpqtypes, you can do stuff like:
res = PQexecf(conn, "insert into foo values (%int4, %text)", 2, "test");
note: libpqtypes requires a patched libpq for client versions < 8.4
merlin
thanks, but how do you install it on Gentoo, there is no ebuild.