PQputvf man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

PQputf(3)		       libpqtypes Manual		     PQputf(3)

NAME
       PQputf, PQputvf - Packs a set of parameters in a PGparam for use with a
       parameterized query.

SYNOPSIS
       #include <libpqtypes.h>

       int PQputf(PGparam *param, const char *format, ...);
       int PQputvf(PGparam *param, char *stmtBuf, size_t stmtBufLen,
		   const char *format, va_list ap);

DESCRIPTION
       The PQputf() and PQputvf() functions put one or more  query  parameters
       into  a	PGparam using a printf style interface.	 Any number of parameā€
       ters can be put at the same time.

       The format argument is a data  type  specifier  string  indicating  the
       parameters  being put, such as "%int4 %polygon".	 format cannot be NULL
       or an empty string.  The variable argument list must match the  format,
       either  "..."  or  ap.	The number of arguments required for each data
       type is dependant on the data type itself;  built-in  PostgreSQL	 types
       always require a single argument.

       The  PQputvf()  function	 can  construct a parameterized command string
       from format, as long as stmtBuf and stmtBufLen have been provided.   If
       the  construction  of  stmtBuf  is  not desired, set it to NULL and set
       stmtBufLen to 0.	 When a constructed statement is desired, the contents
       of  format will be copied to stmtBuf and all data type specifiers, like
       "%int4", will be replaced with $1, $2, etc...  syntax.  The result is a
       parameterized  statement	 in synch with param and ready to be executed.
       For instance: if spec is "SELECT %int4 + %int4", the resulting  stmtBuf
       would be "SELECT $1 + $2".

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

       If any put operation fails, the param is reverted back to the number of
       parameters  it  had  prior  to  the function call; partial puts are not
       allowed.

EXAMPLES
   Using PQputf
       The example uses PQputf() to put a couple parameters into a PGparam.

	      PGtext text = "foobar";
	      PGint8 i8 = PQT_INT64CONST(1099511627776);
	      PGparam *param = PQparamCreate(conn);

	      if(!PQputf(param, "%text %int8", text, i8))
		   fprintf(stderr, "*ERROR: %s\n", PQgeterror());

	      PQparamClear(param);

   Using PQputvf
       The example creates an application function named execf.	  execf	 is  a
       wrapper	to  PQputvf(),	as  well  as PQparamExec(3).  It is similar to
       PQexecf().  The only difference is that the PQexecf implementation uses
       a smaller stack buffer and allocates heap memory when needed.

	      PGresult *
	      execf(PGconn *conn, const char *format, ...)
	      {
		   va_list ap;
		   char stmt[32768];
		   PGparam *param;
		   PGresult *res = NULL;

		   /* create the temporary PGparam */
		   if(!(param = PQparamCreate(conn)))
			return NULL; /* PQseterror already called */

		   /* put the params, create the stmt and exec it */
		   va_start(ap, format);
		   if(PQputvf(param, stmt, sizeof(stmt), format, ap))
			res = PQparamExec(conn, param, stmt, 1); // resfmt is binary
		   va_end(ap);

		   /* param must be cleared */
		   PQparamClear(param);
		   return res;
	      }

	      /* Example: execf will put 2 ints and execute "SELECT $1 + $2" */
	      PGresult *res = execf(conn, "SELECT %int4 + %int4", 100, 67);
	      if(!res)
		   fprintf(stderr, "*ERROR: %s\n", PQgeterror());

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
       pqt-specs(3), PQparamCreate(3), PQgeterror(3), PQseterror(3)

libpqtypes			     2011			     PQputf(3)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net