libpqtypes home page

PQparamSendQuery(3)            libpqtypes Manual           PQparamSendQuery(3)



NAME
       PQparamSendQuery,  PQparamSendQueryPrepared  - Executes an asynchronous
       paramertized query using the parameters in a PGparam.

SYNOPSIS
       #include <libpqtypes.h>

       int PQparamSendQuery(PGconn *conn, PGparam *param,
                            const char *command, int resultFormat);
       int PQparamSendQueryPrepared(PGconn *conn, PGparam *param,
                                    const char *stmtName, int resultFormat);

DESCRIPTION
       The PQparamSendQuery() and PQparamSendQueryPrepared() functions execute
       an  asynchronous  paramertized query using the parameters in a PGparam.
       The only difference between these functions is that  PQparamSendQuery()
       expects a parameterized command string while PQparamSendQueryPrepared()
       expects a stmtName previously prepared via PQprepare().

       Both functions take a param argument, which must contain the same  num-
       ber  of  parameters as either the command string or previously prepared
       stmtName.  Internally, the param is transformed  into  parallel  arrays
       that  are  supplied  to  a PQsendQueryParams() or PQsendQueryPrepared()
       call.

       The resultFormat argument indicates  if  text  or  binary  results  are
       desired;  a  value  of  zero or one respectively.  PQgetf supports both
       text and binary result formats, with the exclusion of arrays  and  com-
       posites which only support binary.

       After  successfully  calling PQparamSendQuery() or PQparamSendQueryPre-
       pared(), call libpq's PQgetResult() one or more  times  to  obtain  the
       results.

RETURN VALUE
       On  success,  a non-zero value is returned.  On error, zero is returned
       and PQgeterror(3) will contain an error message.

EXAMPLES
   Using PQparamSendQuery
       The example uses PQparamSendQuery() to execute a query using a PGparam.

              PGparam *param = PQparamCreate(conn);

              if(!PQputf(param, "%text %int4", "ACTIVE", CAT_CAR))
              {
                   fprintf(stderr, "PQputf: %s\n", PQgeterror());
              }
              else
              {
                   int success = PQparamSendQuery(conn, param,
                        "SELECT * FROM t WHERE status=$1 AND category=$2", 1);

                   if(!success)
                        fprintf(stderr, "PQparamSendQuery: %s\n", PQgeterror());
                   else
                        get_and_print_results(conn); /* calls PQgetResult() */
              }

              PQparamClear(param);

   Using PQparamSendQueryPrepared
       PQparamSendQueryPrepared()   is  behaves  identically  to  PQparamSend-
       Query(), except PQparamSendQueryPrepared() requires  that  a  statement
       has been previously prepared via PQprepare().  Also, a stmtName is sup-
       plied rather than a parameterized command string.

AUTHOR
       A contribution of eSilo, LLC. for the  PostgreSQL  Database  Management
       System.  Written by Andrew Chernow and Merlin Moncure.

REPORTING BUGS
       Report bugs to <libpqtypes@esilo.com>.

COPYRIGHT
       Copyright (c) 2011 eSilo, LLC. All rights reserved.
       This is free software; see the source for copying conditions.  There is
       NO warranty; not even for MERCHANTABILITY or  FITNESS FOR A  PARTICULAR
       PURPOSE.

SEE ALSO
       PQparamCreate(3), PQgeterror(3), PQparamExec(3), PQparamExecPrepared(3)



libpqtypes                           2011                  PQparamSendQuery(3)

libpqtypes home page