Just so that we can snip this thread, we've confirmed that free cursor
and free statement do not affect sqlca structure elements sqlcode and
sqlstate.
Michael Fuhr wrote:
> On Tue, Aug 30, 2005 at 09:01:36AM -0500, Thomas F. O'Connell wrote:
>
>>On Aug 29, 2005, at 2:19 PM, andy rost wrote:
>>
>>> $declare loop1 cursor with hold for
>>> select distinct ( tabname )
>>> from meta ;
>>>
>>>results in sqlca.sqlcode = 100 and sqlca.sqlstate = '02000'
>>
>>[snip]
>>
>>I don't see anything wrong with your cursor declaration, so this just
>>looks like it's indicating that no rows were returned.
>
>
> See my response to the same thread in pgsql-sql about what's
> happening:
>
> http://archives.postgresql.org/pgsql-sql/2005-08/msg00274.php
>
> The ECPG code generator doesn't issue the DECLARE statement until
> the cursor is opened, so checking sqlcode/sqlstate immediately after
> DECLARE but before OPEN will get the error code values from a
> previous command.
>
> Here's an excerpt from the DECLARE documentation:
>
> The PostgreSQL server does not implement an OPEN statement for
> cursors; a cursor is considered to be open when it is declared.
> However, ECPG, the embedded SQL preprocessor for PostgreSQL,
> supports the standard SQL cursor conventions, including those
> involving DECLARE and OPEN statements.
>
> Since declaring a cursor in PostgreSQL also opens it, ECPG apparently
> defers doing anything with the cursor until it finds the OPEN
> statement (i.e., EXEC SQL DECLARE generates no code, and EXEC SQL
> OPEN generates a DECLARE).
>
--
--------------------------------------------------------------------------------
Andrew Rost
National Operational Hydrologic Remote Sensing Center (NOHRSC)
National Weather Service, NOAA
1735 Lake Dr. West, Chanhassen, MN 55317-8582
Voice: (952)361-6610 x 234
Fax: (952)361-6634
arost@nohrsc.nws.gov
http://www.nohrsc.nws.gov
--------------------------------------------------------------------------------