Pb with ecpg and include file on PG 8.0.0

Started by Valerie Schneider DSI/DEVover 21 years ago6 messagesbugs
Jump to latest
#1Valerie Schneider DSI/DEV
Valerie.Schneider@meteo.fr

Hi,

I have a set of libraries and C/C++ programs with embedded access to
a PG database. I'm using ecpg. I'm working on a Linux RedHat9 platform.

Until now I was in PG 7.4.2 :
[clipg@li SrcLib]$ ecpg --version
ecpg (PostgreSQL 7.4.2) 3.1.1
[clipg@li SrcLib]$ g++ --version
g++ (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)
Copyright (C) 2002 Free Software Foundation, Inc.

and without any problem.

I installed PG 8.0.0beta2 :
[clipg@li SrcLib]$ ecpg --version
ecpg (PostgreSQL 8.0.0beta2) 3.2.0

And if I try to recompile I find pre-compiled errors, variables which
are defined in an include file are not "seen".
Is there any known problem or bug about this ?

Detail :
======= Precompiling DbTablesFk.pgc =======

ecpg DbTablesFk.pgc -I/VALE/users/clipg/Server/Include -o DbTablesFk.cc
DbTablesFk.pgc:144: ERROR: trying to access an undeclared cursor MAX_FK

DbTablesFk.pgc:144: ERROR: syntax error at or near "IN"

and in the program :
...
EXEC SQL INCLUDE DbTablesUtilPg.hh;
...

EXEC SQL PREPARE S FROM :sqlstmt;
EXEC SQL DECLARE C_FK_COL CURSOR FOR S;
EXEC SQL OPEN C_FK_COL;
EXEC SQL FETCH MAX_FK IN C_FK_COL INTO :fk_id_L , :valid_L, :target_t_L;

with MAX_FK a variable defined in the file
/VALE/users/clipg/Server/Include/DbTablesUtilPg.hh :
exec sql define MAX_FK 100;

If I replace the MAX_FK variable by its value it's OK.
If I define the MAX_FK variable directly in the program (and not
in an include file) it's OK.

Any idea ? Thanks for all, Valerie.

--

********************************************************************
* Les points de vue exprimes sont strictement personnels et *
* n'engagent pas la responsabilite de METEO-FRANCE. *
********************************************************************
* Valerie SCHNEIDER Tel : +33 (0)5 61 07 81 91 *
* METEO-FRANCE / DSI/DEV Fax : +33 (0)5 61 07 81 09 *
* 42, avenue G. Coriolis Email : Valerie.Schneider@meteo.fr *
* 31057 TOULOUSE Cedex - FRANCE http://www.meteo.fr *
********************************************************************

#2Bruce Momjian
bruce@momjian.us
In reply to: Valerie Schneider DSI/DEV (#1)
Re: Pb with ecpg and include file on PG 8.0.0

Valerie Schneider DSI/DEV wrote:

...
EXEC SQL INCLUDE DbTablesUtilPg.hh;
...

EXEC SQL PREPARE S FROM :sqlstmt;
EXEC SQL DECLARE C_FK_COL CURSOR FOR S;
EXEC SQL OPEN C_FK_COL;
EXEC SQL FETCH MAX_FK IN C_FK_COL INTO :fk_id_L , :valid_L, :target_t_L;

with MAX_FK a variable defined in the file
/VALE/users/clipg/Server/Include/DbTablesUtilPg.hh :
exec sql define MAX_FK 100;

^

I think your problem is the semicolon.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
#3Michael Meskes
meskes@postgresql.org
In reply to: Valerie Schneider DSI/DEV (#1)
Re: Pb with ecpg and include file on PG 8.0.0

I received this bug report and will take care of it as soon as I find
time. Since I am travelling next week to give PostgreSQL training, this
will take at least a week or so.

Michael
--
Michael Meskes
Email: Michael at Fam-Meskes dot De
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!

#4Michael Meskes
meskes@postgresql.org
In reply to: Valerie Schneider DSI/DEV (#1)
Re: Pb with ecpg and include file on PG 8.0.0

On Fri, Sep 10, 2004 at 08:09:55AM +0000, Valerie Schneider DSI/DEV wrote:

I installed PG 8.0.0beta2 :
[clipg@li SrcLib]$ ecpg --version
ecpg (PostgreSQL 8.0.0beta2) 3.2.0

This works nicely for me with ecpg 3.2.0. It may be that ecpg
does not find the include file. But then it should also print that.

I had the file in "." where ecpg found it and the constant was correctly
translated.

Michael
--
Michael Meskes
Email: Michael at Fam-Meskes dot De
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!

#5Valerie Schneider DSI/DEV
Valerie.Schneider@meteo.fr
In reply to: Michael Meskes (#4)
Re: Pb with ecpg and include file on PG 8.0.0

Date: Tue, 14 Sep 2004 09:27:41 +0200
From: Michael Meskes <meskes@postgresql.org>
To: Valerie Schneider DSI/DEV <valerie.schneider@meteo.fr>
Cc: pgsql-bugs@postgresql.org
Subject: Re: [BUGS] Pb with ecpg and include file on PG 8.0.0
Mime-Version: 1.0
Content-Disposition: inline
User-Agent: Mutt/1.5.6+20040722i
X-Provags-ID: kundenserver.de abuse@kundenserver.de

auth:da5cff6069dd6897c77170232368d0ba

On Fri, Sep 10, 2004 at 08:09:55AM +0000, Valerie Schneider DSI/DEV wrote:

I installed PG 8.0.0beta2 :
[clipg@li SrcLib]$ ecpg --version
ecpg (PostgreSQL 8.0.0beta2) 3.2.0

This works nicely for me with ecpg 3.2.0. It may be that ecpg
does not find the include file. But then it should also print that.

But why ecpg found it in the 7.4 version ?
Following a remark I removed the semi-colon at the end of each
exec sql define xxxxxx
(I had : exec sql define xxxxxx ; )
in the include file. No result.

Someone from the pgsql-fr-generale list seems to have the same problem.

Thanks for your reply, Valerie.

I had the file in "." where ecpg found it and the constant was correctly
translated.

Michael
--
Michael Meskes
Email: Michael at Fam-Meskes dot De
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!

********************************************************************
* Les points de vue exprimes sont strictement personnels et *
* n'engagent pas la responsabilite de METEO-FRANCE. *
********************************************************************
* Valerie SCHNEIDER Tel : +33 (0)5 61 07 81 91 *
* METEO-FRANCE / DSI/DEV Fax : +33 (0)5 61 07 81 09 *
* 42, avenue G. Coriolis Email : Valerie.Schneider@meteo.fr *
* 31057 TOULOUSE Cedex - FRANCE http://www.meteo.fr *
********************************************************************

#6Michael Meskes
meskes@postgresql.org
In reply to: Valerie Schneider DSI/DEV (#5)
Re: Pb with ecpg and include file on PG 8.0.0

On Tue, Sep 14, 2004 at 08:35:52AM +0000, Valerie Schneider DSI/DEV wrote:

But why ecpg found it in the 7.4 version ?

I'm not even sure this is the reason. Could you please try moving the
file to "." to see if it works?

Michael
--
Michael Meskes
Email: Michael at Fam-Meskes dot De
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!