Age Owner TLA Line data Source code
1 : #include <stdlib.h>
2 :
3 : exec sql include ../regression;
4 :
5 : exec sql whenever sqlerror stop;
6 :
2053 meskes 7 CBC 1 : int main(void)
8 : {
9 : exec sql begin declare section;
10 : struct
11 : {
12 : char ename[12];
13 : float sal;
14 : float comm;
15 : } emp;
16 : int loopcount;
17 : char msg[128];
18 : exec sql end declare section;
19 :
20 1 : ECPGdebug(1, stderr);
21 :
22 1 : strcpy(msg, "connect");
23 1 : exec sql connect to REGRESSDB1;
24 1 :
25 1 : strcpy(msg, "create");
26 1 : exec sql create table emp(ename varchar,sal double precision, comm double precision);
27 1 :
28 1 : strcpy(msg, "insert");
29 1 : exec sql insert into emp values ('Ram',111100,21);
30 1 : exec sql insert into emp values ('aryan',11110,null);
31 1 : exec sql insert into emp values ('josh',10000,10);
32 1 : exec sql insert into emp values ('tom',20000,null);
33 1 :
34 : exec sql declare c cursor for select ename, sal, comm from emp order by ename collate "C" asc;
35 :
36 1 : exec sql open c;
37 1 :
38 : /* The 'BREAK' condition to exit the loop. */
39 : exec sql whenever not found do break;
40 :
41 : /* The DO CONTINUE makes the loop start at the next iteration when an error occurs.*/
42 : exec sql whenever sqlerror do continue;
43 :
1536 tgl 44 5 : for (loopcount = 0; loopcount < 100; loopcount++)
45 : {
2053 meskes 46 5 : exec sql fetch c into :emp;
47 5 : /* The employees with non-NULL commissions will be displayed. */
48 2 : printf("%s %7.2f %9.2f\n", emp.ename, emp.sal, emp.comm);
49 : }
50 :
51 : /*
52 : * This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to
53 : * proceed if any further errors do occur.
54 : */
55 : exec sql whenever sqlerror continue;
56 :
57 1 : exec sql close c;
58 :
59 1 : strcpy(msg, "drop");
60 1 : exec sql drop table emp;
61 :
62 1 : exit(0);
63 : }
|