Age Owner Branch data TLA Line data Source code
1 : : #include <stdio.h>
2 : :
3 : : exec sql include ../regression;
4 : :
5 : : EXEC SQL WHENEVER sqlerror sqlprint;
6 : : EXEC SQL WHENEVER sqlwarning sqlprint;
7 : : EXEC SQL WHENEVER not found sqlprint;
8 : :
9 : : EXEC SQL TYPE customer IS
10 : : struct
11 : : {
12 : : varchar name[50];
13 : : int phone;
14 : : };
15 : :
16 : : EXEC SQL TYPE cust_ind IS
17 : : struct ind
18 : : {
19 : : short name_ind;
20 : : short phone_ind;
21 : : };
22 : :
5443 meskes@postgresql.or 23 :CBC 1 : int main()
24 : : {
25 : : EXEC SQL begin declare section;
26 : : customer custs1[10];
27 : : cust_ind inds[10];
28 : : typedef struct
29 : : {
30 : : varchar name[50];
31 : : int phone;
32 : : } customer2;
33 : : customer2 custs2[10];
34 : : struct customer3
35 : : {
36 : : varchar name[50];
37 : : int phone;
38 : : } custs3[10];
39 : : struct customer4
40 : : {
41 : : varchar name[50];
42 : : int phone;
43 : : } custs4;
44 : : int r;
45 : : varchar onlyname[2][50];
46 : : EXEC SQL end declare section;
47 : :
6088 48 : 1 : ECPGdebug(1, stderr);
49 : :
50 : 1 : EXEC SQL connect to REGRESSDB1;
51 [ - + - + ]: 1 :
52 : 1 : EXEC SQL create table customers (c varchar(50), p int);
53 [ - + - + ]: 1 : EXEC SQL insert into customers values ('John Doe', '12345');
54 [ - + - + : 1 : EXEC SQL insert into customers values ('Jane Doe', '67890');
- + ]
55 [ - + - + : 1 :
- + ]
56 : 1 : EXEC SQL select * INTO :custs1:inds from customers limit 2;
57 [ - + - + : 1 : printf("custs1:\n");
- + ]
58 [ + + ]: 3 : for (r = 0; r < 2; r++)
59 : : {
60 : 2 : printf( "name - %s\n", custs1[r].name.arr );
61 : 2 : printf( "phone - %d\n", custs1[r].phone );
62 : : }
63 : :
64 : 1 : EXEC SQL select * INTO :custs2:inds from customers limit 2;
65 [ - + - + : 1 : printf("\ncusts2:\n");
- + ]
66 [ + + ]: 3 : for (r = 0; r < 2; r++)
67 : : {
68 : 2 : printf( "name - %s\n", custs2[r].name.arr );
69 : 2 : printf( "phone - %d\n", custs2[r].phone );
70 : : }
71 : :
72 : 1 : EXEC SQL select * INTO :custs3:inds from customers limit 2;
73 [ - + - + : 1 : printf("\ncusts3:\n");
- + ]
74 [ + + ]: 3 : for (r = 0; r < 2; r++)
75 : : {
76 : 2 : printf( "name - %s\n", custs3[r].name.arr );
77 : 2 : printf( "phone - %d\n", custs3[r].phone );
78 : : }
79 : :
80 : 1 : EXEC SQL select * INTO :custs4:inds[0] from customers limit 1;
81 [ - + - + : 1 : printf("\ncusts4:\n");
- + ]
82 : 1 : printf( "name - %s\n", custs4.name.arr );
83 : 1 : printf( "phone - %d\n", custs4.phone );
84 : :
5887 85 : 1 : EXEC SQL select c INTO :onlyname from customers limit 2;
86 [ - + - + : 1 : printf("\nname:\n");
- + ]
87 [ + + ]: 3 : for (r = 0; r < 2; r++)
88 : : {
89 : 2 : printf( "name - %s\n", onlyname[r].arr );
90 : : }
91 : :
6088 92 : 1 : EXEC SQL disconnect all;
93 [ - + - + ]: 1 :
2432 peter_e@gmx.net 94 : 1 : return 0;
95 : : }
|