On Thu, Jan 05, 2006 at 03:18:10PM +0000, Chuck Wegrzyn wrote: > I don't know if this is known or not, but it was a pretty interesting > "feature" to find.
It is known. > This worked fine. When I decided I wanted to have a different cursor but > keep the old in the source I did the normal C thing... > > #if 0 > <old DECLARE> Problem here is that ecpg processes the file BEFORE cpp does, so ecpg does not know what this "#if 0" means. If you want to use preprocessor commands that ecpg recognizes you should use EXEC SQL IF. Additionally the command your were using is a pure declaration, i.e. no executable code is associated with it. In fact standard asks ecpg to accept a cursor declaration almost everywhere. The cursor itself is not opened before the EXEC SQL OPEN command. So ecpg already added this cursor definition to its internal structures, not knowing that cpp would take away the code later on. > To those of you "old hands" you are probably saying: What an idiot that > won't work! How true. When I needed to do was: > > // <old DECLARE> You could also use C-style comments: /* <old DECLARE> */ > I find this rather inconsistent in the way ECPG works. Why? > Even stranger was the error I got from ECPG... > > ECPG -o store.c store.ec > store.ec:146: ERROR: cursor StoreCur already defined So you had another definition of StoreCur, probably in the ELSE branch, right? > store.ec:411: WARNING: cursor `StoreCur´ has been declared but ot opened > > The warning message looks like garbage insterted after the StoreCur name. This of course is true and need to be fixed. However, on my system it does not happen: a.pgc:27: WARNING: cursor "StoreCur" has been declared but not opened Could you please tell me which version you are using? And on which operating system? Michael -- Michael Meskes Email: Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org) ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: [EMAIL PROTECTED] Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL! ---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly