Re: How can I retrieve a function result? - Mailing list pgsql-general

From Joachim Wieland
Subject Re: How can I retrieve a function result?
Date
Msg-id 20060613231438.GA4441@mcknight.de
Whole thread Raw
In response to Re: How can I retrieve a function result?  ("Luis Alberto Pérez Paz" <midriasis@gmail.com>)
Responses Re: How can I retrieve a function result?
List 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

pgsql-general by date:

Previous
From: "Jim C. Nasby"
Date:
Subject: Re: plpgsql Result Sets
Next
From: "Jim C. Nasby"
Date:
Subject: Re: postgres vs. oracle for very large tables