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

Re: [INTERFACES] esql\c documentation

From: Michael Meskes <meskes(at)postgresql(dot)org>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: [INTERFACES] esql\c documentation
Date: 1999-06-18 11:30:23
Message-ID: 19990618133023.D382@gmx.net (view raw or flat)
Thread:
Lists: pgsql-interfaces
On Thu, Jun 17, 1999 at 11:58:14AM -0700, Craig Orsinger wrote:
> EXEC SQL DECLARE CURSOR <cursor id> FOR <select statement> ;
> EXEC SQL FETCH <cursor id> INTO <variable(s)> ;

Same with ORACLE.

>         Here's how ECPG does the same thing:
> 
> EXEC SQL DECLARE CURSOR <cursor id> FOR <select statemtent> ;
> EXEC SQL FETCH IN <cursor id> INTO <variable(s)> ;

That's what SQL-92 wants.

>         It doesn't work (in 6.4.2 and earlier, at least) without that 'IN'.
> In checking through the test source in the 6.5 version (directory 
> <source root>/src/interfaces/ecpg/test), I notice that the
> 'IN' is still included in all the FETCH statements. I don't know why I

The standard wants to see IN. Simply omitting it wouldn't even work with our
parser. It creates a shift/reduce conflict. Of course we could fix that but
I doubt adding a non-standard feature is worth that effort.

>         So it would appear that PostgreSQL allows a FETCH command without
> a cursor, and the "IN" clause identifies a string as a cursor id ???
> This is substantially different from the way cursors and fetches are
> done in ESQL/C. For one thing, I can't find any way of doing more 
> than one row at a time (assuming that's what the "[number|ALL]" clause
> is about).

The FETCH command is completely handled by the backend. Everything that
works via psql should work via ecpg.

>         Hmmm. I don't explicitely enable transactions, but the only
> way that something seems to get done is by having that COMMIT statement
> at the end of the function. Do I have to turn off transaction processing
> explicitely?

Try ecpg -t. Without the '-t' ecpg automatically starts a transaction via
issuing the BEGIN command.

Michael
-- 
Michael Meskes                         | Go SF 49ers!
Th.-Heuss-Str. 61, D-41812 Erkelenz    | Go Rhein Fire!
Tel.: (+49) 2431/72651                 | Use Debian GNU/Linux!
Email: Michael(dot)Meskes(at)gmx(dot)net          | Use PostgreSQL!

In response to

Responses

pgsql-interfaces by date

Next:From: James Olin OdenDate: 1999-06-18 11:52:28
Subject: Re: [INTERFACES] Perl Interface
Previous:From: Philippe Le NaourDate: 1999-06-18 09:17:38
Subject: Authentication failure with pgaccess

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group