Thread: Problem with exec sql include

Problem with exec sql include

From
Carmen Gloria Sepulveda Dedes
Date:
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


Re: Problem with exec sql include

From
Michael Meskes
Date:
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!

Re: Problem with exec sql include

From
Carmen Gloria Sepulveda Dedes
Date:
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


> 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.


Re: Problem with exec sql include

From
Michael Meskes
Date:
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!