diff options
Diffstat (limited to 'src/interfaces/ecpg/test/preproc/define.pgc')
-rw-r--r-- | src/interfaces/ecpg/test/preproc/define.pgc | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/interfaces/ecpg/test/preproc/define.pgc b/src/interfaces/ecpg/test/preproc/define.pgc new file mode 100644 index 00000000000..1a4ac7444b8 --- /dev/null +++ b/src/interfaces/ecpg/test/preproc/define.pgc @@ -0,0 +1,64 @@ +#include <stdio.h> +#include <stdlib.h> + +EXEC SQL include ../regression; + +EXEC SQL typedef long mmInteger; +EXEC SQL typedef char mmChar; +EXEC SQL typedef short mmSmallInt; + +EXEC SQL BEGIN DECLARE SECTION; +struct TBempl +{ + mmInteger idnum; + mmChar name[21]; + mmSmallInt accs; +}; +EXEC SQL END DECLARE SECTION; + +int +main (void) +{ + EXEC SQL BEGIN DECLARE SECTION; + struct TBempl empl; + EXEC SQL END DECLARE SECTION; + + ECPGdebug (1, stderr); + + empl.idnum = 1; + EXEC SQL connect to REGRESSDB1; + if (sqlca.sqlcode) + { + printf ("connect error = %ld\n", sqlca.sqlcode); + exit (sqlca.sqlcode); + } + + EXEC SQL create table empl + (idnum integer, name char (20), accs smallint); + if (sqlca.sqlcode) + { + printf ("create error = %ld\n", sqlca.sqlcode); + exit (sqlca.sqlcode); + } + + EXEC SQL insert into empl values (1, 'first user', 320); + if (sqlca.sqlcode) + { + printf ("insert error = %ld\n", sqlca.sqlcode); + exit (sqlca.sqlcode); + } + + EXEC SQL select idnum, name, accs + into :empl + from empl + where idnum =:empl.idnum; + if (sqlca.sqlcode) + { + printf ("select error = %ld\n", sqlca.sqlcode); + exit (sqlca.sqlcode); + } + printf ("id=%ld name=%s, accs=%d\n", empl.idnum, empl.name, empl.accs); + + EXEC SQL disconnect; + exit (0); +} |