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

FreeBSD Manual Pages

  
 
  

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

NAME
       PQexecf - Prepares parameters and executes a command.

SYNOPSIS
       #include	<libpqtypes.h>

       PGresult	*PQexecf(const PGconn *conn, const char	*cmd, ...);
       PGresult	*PQexecvf(const	PGconn *conn, const char *cmd, va_list ap);
       int PQsendf(const PGconn	*conn, const char *cmd,	...);
       int PQsendvf(const PGconn *conn,	const char *cmd, va_list ap);

DESCRIPTION
       The  PQexecf()  function	 executes  a command that uses libpqtypes type
       specifiers instead of $1, $2, etc... syntax.  The idea  is  to  combine
       PQputvf()  and PQparamExec() into a single call.	 The variable argument
       list must match the type	specs listed within the	cmd. The  type	speci-
       fiers should be placed where one	would normally place $1, $2, etc...

       The  PQexecvf()	function  is  identical	to PQexecf() except it takes a
       va_list.

       The PQsendf() and PQsendvf() functions are identical to	PQexecf()  and
       PQexecvf() except they are asynchronous versions, meaning an additional
       call, PQgetResult, must be issued to get	the PGresult object.  For more
       information,  see the PostgreSQL	Documentation: specifically the	"Asyn-
       chronous	Command	Processing" section under "Client Interfaces | libpq -
       C library".

       A  prepared type	spec "@name" can be used with these functions, granted
       that PQspecPrepare() was	called with a non-zero value for  the  is_stmt
       argument.  These	functions needs	an actual SQL statement	to execute.

RETURN VALUE
       PQexecf	and PQexecvf return NULL on error and a	valid PGresult on suc-
       cess.  PQsendf and PQsendvf return zero on error	and a  non-zero	 value
       on success.  On error, use PQgeterror(3)	to obtain an error message.

EXAMPLES
   Using PQexecf
       The example uses	PQexecf	function to execute a query.

	      /* The PQexecf call is shorthand for:
	       *
	       *   PGparam *param = PQparamCreate(conn);
	       *   PQputf(param, "%int4	%int4",	1, 1);
	       *   res = PQparamExec(conn, param, "SELECT $1 + $2", 1);
	       *   PQparamClear(param);
	       *
	       * As you	may notice, PQexecf makes life much simpler.
	       */
	      PGresult *res = PQexecf(conn, "SELECT %int4 + %int4", 1, 1);

	      if(!res)
		   fprintf(stderr, "PQexecf failed: %s", PQgeterror());
	      else
		   PQclear(res);

	      /* A bit more common, this puts an int4 and a text into a	generated
	       * PGparam and then executes 'myfunc($1, $2)'
	       */
	      res = PQexecf(conn, "SELECT * FROM myfunc(%int4, %text)",	2, "abc");

	      /* Prepared type spec example.  To use with execf, the final "is_stmt"
	       * argument must be set to a non-zero value!
	       */
	      PQspecPrepare(conn, "account_insert", "INSERT INTO account VALUES	"
		   "(%int8, %text, %int4)", 1);

	      PGint8 acc_id = 78236;
	      PGtext acc_name =	"ABC Coders, LLC.";
	      PGint4 acc_biz = ACC_BIZ_TECHNOLOGY;

	      PQexecf(conn, "@account_insert", acc_id, acc_name, acc_biz);

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
       PQgeterror(3), PQputvf(3), PQparamExec(3)

libpqtypes			     2011			    PQexecf(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=PQexecf&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help