Problem with exec sql include

Started by Carmen Gloria Sepulveda Dedesover 22 years ago4 messagesgeneral
Jump to latest
#1Carmen Gloria Sepulveda Dedes
csepulveda@atichile.com

Hello.

I have a 2 files: test.h and test.pgc.

In test.h, I defined:

typedef struct {
long curid;
char curnombre[20];
char curfecha[10];
} struct_cursor;

And, in test.pgc, I want to declare:

EXEC SQL BEGIN DECLARE SECTION;
struct_cursor t_cursor;
EXEC SQL END DECLARE SECTION;

But, when I do: ecpg -I/<include_file_path> test.pgc,
I get: test.pgc:7: ERROR: invalid datatype 'struct_cursor'

I know that I can include the typedef at DECLARE SECTION, but I don't
want to use that (test.h and test.pgc are only examples of the problem
bigest).

How can I resolve this?

Thanks.

CG

#2Michael Meskes
meskes@postgresql.org
In reply to: Carmen Gloria Sepulveda Dedes (#1)
Re: Problem with exec sql include

On Wed, Nov 19, 2003 at 11:09:58AM -0300, Carmen Gloria Sepulveda Dedes wrote:

I know that I can include the typedef at DECLARE SECTION, but I don't
want to use that (test.h and test.pgc are only examples of the problem

ECPG does not parse anything outside EXEC SQL blocks, so how else should
it lear about your struct definition? You can of course use a EXEC SQL
TYPE command to define it for ECPG as well.

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!

#3Carmen Gloria Sepulveda Dedes
csepulveda@atichile.com
In reply to: Carmen Gloria Sepulveda Dedes (#1)
Re: Problem with exec sql include

Thanks for you suggestion.

In the test.pgc file, I do:

EXEC SQL BEGIN DECLARE SECTION;
exec sql include test;
struct_cursor t_cursor;
EXEC SQL END DECLARE SECTION;

... and it works fine. It is correct????

Thank you again.

CG

Show quoted text

ECPG does not parse anything outside EXEC SQL blocks, so how else should
it lear about your struct definition? You can of course use a EXEC SQL
TYPE command to define it for ECPG as well.

#4Michael Meskes
meskes@postgresql.org
In reply to: Carmen Gloria Sepulveda Dedes (#3)
Re: Problem with exec sql include

On Wed, Nov 19, 2003 at 12:26:07PM -0300, Carmen Gloria Sepulveda Dedes wrote:

In the test.pgc file, I do:

EXEC SQL BEGIN DECLARE SECTION;
exec sql include test;
struct_cursor t_cursor;
EXEC SQL END DECLARE SECTION;

... and it works fine. It is correct????

Depends on what test.h contains. ecpg has to learn the definition of
your struct somewhere.

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!