Thread: Problem with exec sql include
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
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!
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.
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!