aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/test/test2.pgc
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/ecpg/test/test2.pgc')
-rw-r--r--src/interfaces/ecpg/test/test2.pgc40
1 files changed, 26 insertions, 14 deletions
diff --git a/src/interfaces/ecpg/test/test2.pgc b/src/interfaces/ecpg/test/test2.pgc
index 6500ba89a94..e0bdac9287a 100644
--- a/src/interfaces/ecpg/test/test2.pgc
+++ b/src/interfaces/ecpg/test/test2.pgc
@@ -2,8 +2,6 @@
exec sql include header_test;
-extern void ECPGdebug(int n, FILE *dbgs);
-
static int not_found = 0;
static void
set_not_found(void)
@@ -18,39 +16,53 @@ exec sql begin declare section;
struct personal_struct { varchar name[8];
struct birth_struct { long born;
short age;
- } birth;
+ } birth;
} personal;
+ struct personal_indicator { short name;
+ struct birth_indicator { short born;
+ int age;
+ } ind_birth;
+ } ind_personal;
+ long ind_married;
+ char married[9]="a";
exec sql end declare section;
- char msg[128];
+ char msg[128], command[128];
FILE *dbgs;
if ((dbgs = fopen("log", "w")) != NULL)
- ECPGdebug(1, dbgs);
+ ECPGdebug(1, dbgs);
strcpy(msg, "connect");
- exec sql connect 'mm';
+ exec sql connect mm;
strcpy(msg, "create");
- exec sql create table meskes(name char8, born int4, age int2);
+ exec sql create table meskes(name char(8), born integer, age smallint, married char(8));
strcpy(msg, "insert");
- exec sql insert into meskes(name, born, age) values ('Petra', 19661202, 31);
- exec sql insert into meskes(name, born, age) values ('Michael', 19660117, 32);
+ exec sql insert into meskes(name, born, age, married) values ('Petra', 19661202, 31, '19900404');
+ exec sql insert into meskes(name, born, age, married) values ('Michael', 19660117, 32, '19900404');
exec sql insert into meskes(name, born, age) values ('Carsten', 19910103, 7);
exec sql insert into meskes(name, born, age) values ('Marc', 19930907, 4);
- exec sql insert into meskes(name, born, age) values ('Chris', 19970923, 0);
+
+ sprintf(command, "insert into meskes(name, born, age) values ('Chris', 19970923, 0)");
+ strcpy(msg, "execute");
+ exec sql execute immediate :command;
+
+ strcpy(msg, "commit");
+ exec sql commit;
strcpy(msg, "declare");
exec sql declare cur cursor for
- select name, born, age from meskes;
+ select name, born, age, married from meskes;
+ strcpy(msg, "open");
exec sql open cur;
while (not_found == 0) {
strcpy(msg, "fetch");
- exec sql fetch cur into :personal;
+ exec sql fetch cur into :personal:ind_personal, :married:ind_married;
if (not_found == 0)
- printf ("%8.8s was born %d (age = %d)\n", personal.name.arr, personal.birth.born, personal.birth.age);
+ printf ("%8.8s was born %d (age = %d) %s%s\n", personal.name.arr, personal.birth.born, personal.birth.age, ind_married ? "" : "and married ", ind_married ? "" : married);
}
strcpy(msg, "close");
@@ -63,7 +75,7 @@ exec sql end declare section;
exec sql commit;
if (dbgs != NULL)
- fclose(dbgs);
+ fclose(dbgs);
return (0);
}