Re: How can I retrieve a function result?

From: Joachim Wieland <joe(at)mcknight(dot)de>
To: Luis Alberto Pérez Paz <midriasis(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: How can I retrieve a function result?
Date: 2006-06-13 23:14:38
Message-ID: 20060613231438.GA4441@mcknight.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Luis,

On Tue, Jun 13, 2006 at 01:19:32PM -0500, Luis Alberto Pérez Paz wrote:
> The program works fine, actually I can verify that it executes the FUNCTION
> 'myFunction', however I dont know how can I get the return value of the
> FUNCTION 'myFunction' (as you can see in the little example the return
> value can be 0 or -900).

this is similar to retrieving the result of a query that returned one row
and one column. So you just have to use PQgetvalue(res, 0, 0).

Here are a few other examples:

Check if there were rows at all:

if (PQntuples(res) == 0) {
/* no rows */
PQclear(res);
return (char*) 0;
}

Check if there was anything else than one column per row:

if (PQnfields(res) != 1) {
/* did not get only 1 column back */
PQclear(res);
return (char*) 0;
}

Check whether or not the first column, first row field is NULL:

if (PQgetisnull(res, 0, 0)) {
/* got NULL */
PQclear(res);
return (char*) 0;
}

Get the first row, first column value as char*:

db_value = PQgetvalue(res, 0, 0);

I hope this gives you an idea.

Those functions are in this section of the documentation:

http://www.postgresql.org/docs/8.1/static/libpq-exec.html#LIBPQ-EXEC-SELECT-INFO

Joachim

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Jim C. Nasby 2006-06-13 23:19:01 Re: postgres vs. oracle for very large tables
Previous Message Jim C. Nasby 2006-06-13 23:14:10 Re: plpgsql Result Sets