By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,276 Members | 1,418 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,276 IT Pros & Developers. It's quick & easy.

ECPG - bug in EXEC SQL WHENEVER NOT FOUND?

P: n/a
Today I ran into problems when combining a C program with SQL statements
with the ECPG interface of PostgreSQL:

According to the documentation, it should be possible with
EXEC SQL WHENEVER NOT FOUND action
to trigger an action when a query does not return a row.

This does not seem to function. Here is the C program I tested:

----------------------------------------------------------------
/* Test for ecpg interface */
/* An empty table
t (n INTEGER);
must exist in the database
*/
#include <stdio.h>
EXEC SQL BEGIN DECLARE SECTION;
int i;
EXEC SQL END DECLARE SECTION;
int main ()
{ int c;
ECPGdebug(1,stdout);
EXEC SQL WHENEVER SQLERROR SQLPRINT;
EXEC SQL WHENEVER NOT FOUND GOTO notfound;
EXEC SQL CONNECT TO unix:postgresql://localhost/mydb USER rank;
EXEC SQL SELECT n INTO :i FROM t;
printf ("%d\n", i);
EXEC SQL DISCONNECT;
exit (0);
notfound:
printf ("no data found\n");
EXEC SQL DISCONNECT;
exit (0);
}
----------------------------------------------------------------

When running this program on an empty table t in the database, it produces:

[1116]: ECPGdebug: set to 1
[1116]: ECPGconnect: opening database mydb on <DEFAULT> port <DEFAULT>
for user rank
[1116]: ECPGexecute line 16: QUERY: select n from t on connection mydb
[1116]: ECPGexecute line 16: Correctly got 0 tuples with 1 fields
[1116]: raising sqlcode 100 in line 16, 'No data found in line 16.'.
0
[1116]: ecpg_finish: Connection mydb closed.

We can see that sqlcode is set correctly, but the jump to the C-label
notfound does not occur.

Is this a bug in ECPG or am I doing something wrong?

Thanks in advance for your help,
Christian Rank

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Nov 23 '05 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.