Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PQparamExec(3)		       libpqtypes Manual		PQparamExec(3)

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 parame-
       terized	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	previ-
       ously 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 PQexecParams() or	PQexecPrepared() call.

       The  resultFormat  argument indicates if	text or	binary results are de-
       sired; 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 re-
       turned and PQgeterror(3)	will contain an	error message.

       IMPORTANT!
       There  is a difference in behavior between PQparamExec()	and PQparamEx-
       ecPrepared() 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  re-
       turned.	 Before	 clearing the PGresult and returning NULL, these func-
       tions 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 re-
       turn, and a single function that	can get	the  error  message,  PQgeter-
       ror().

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 er-
       ror 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)

libpqtypes			     2011			PQparamExec(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | EXAMPLES | AUTHOR | REPORTING BUGS | COPYRIGHT | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=PQparamExec&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help