Provided by: libpqtypes-dev_1.5.1-2_amd64 bug

NAME

       PQparamExec, PQparamExecPrepared - Executes a paramertized query using the parameters in a PGparam.

SYNOPSIS

       #include <libpqtypes.h>

       PGresult *PQparamExec(PGconn *conn, PGparam *param,
                             const char *command, int resultFormat);
       PGresult *PQparamExecPrepared(PGconn *conn, PGparam *param,
                                     const char *stmtName, int resultFormat);

DESCRIPTION

       The  PQparamExec() and PQparamExecPrepared() functions execute a parameterized query using the parameters
       in a PGparam.  The only difference between these functions is that PQparamExec() expects a  parameterized
       command string while PQparamExecPrepared() expects a stmtName previously prepared via PQprepare().

       Both  functions  take  a  param  argument, which must contain the same number of parameters as either the
       command string or previously prepared stmtName.  Internally,  the  param  is  transformed  into  parallel
       arrays that are supplied to a PQexecParams() or PQexecPrepared() 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
       composites which only support binary.

RETURN VALUE

       On  success,  a  pointer  to  a  PGresult is returned.  On error, NULL is returned and PQgeterror(3) will
       contain an error message.

       IMPORTANT!
       There is a difference in behavior between PQparamExec() and PQparamExecPrepared() and the libpq functions
       they  wrap,  PQexecParams()  and PQexecPrepared().  PQparamExec() and PQparamExecPrepared() only return a
       non-NULL  PGresult  when   the   result   status   is   either   PGRES_COMMAND_OK,   PGRES_TUPLES_OK   or
       PGRES_EMPTY_QUERY.  If these functions detect any other result status, the PGresult is cleared and a NULL
       result is returned.  Before clearing the PGresult and returning NULL,  these  functions  first  copy  the
       result  error  message  into  the  libpqtypes  error  system,  accessible via PQgeterror(3).  This allows
       applications to get a resultĀ“s error message without needing the result object.  conn error messages  are
       also copied to the libpqtypes error system.

       This behavior difference provides a single error indicator, a NULL return, and a single function that can
       get the error message, PQgeterror().

EXAMPLES

   Using PQparamExec
       The example uses PQparamExec() to execute a query using a PGparam.  The example also demonstrates how  to
       detect a failed exec and output an error message.

              PGparam *param = PQparamCreate(conn);

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

                   if(!res)
                        fprintf(stderr, "PQparamExec: %s\n", PQgeterror());
                   else
                        print_results(res);

                   PQclear(res);
              }

              PQparamClear(param);

   Using PQparamExecPrepared
       PQparamExecPrepared() is behaves identically to PQparamExec(), except PQparamExecPrepared() requires that
       a statement has been previously prepared via PQprepare().  Also, a stmtName is  supplied  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), PQparamSendQuery(3), PQparamSendQueryPrepared(3)