#include exec sql include ../regression; EXEC SQL WHENEVER sqlerror sqlprint; EXEC SQL WHENEVER sqlwarning sqlprint; EXEC SQL WHENEVER not found sqlprint; EXEC SQL TYPE customer IS struct { varchar name[50]; int phone; }; EXEC SQL TYPE cust_ind IS struct ind { short name_ind; short phone_ind; }; int main() { EXEC SQL begin declare section; customer custs1[10]; cust_ind inds[10]; typedef struct { varchar name[50]; int phone; } customer2; customer2 custs2[10]; struct customer3 { varchar name[50]; int phone; } custs3[10]; struct customer4 { varchar name[50]; int phone; } custs4; int r; varchar onlyname[2][50]; EXEC SQL end declare section; ECPGdebug(1, stderr); EXEC SQL connect to REGRESSDB1; EXEC SQL create table customers (c varchar(50), p int); EXEC SQL insert into customers values ('John Doe', '12345'); EXEC SQL insert into customers values ('Jane Doe', '67890'); EXEC SQL select * INTO :custs1:inds from customers limit 2; printf("custs1:\n"); for (r = 0; r < 2; r++) { printf( "name - %s\n", custs1[r].name.arr ); printf( "phone - %d\n", custs1[r].phone ); } EXEC SQL select * INTO :custs2:inds from customers limit 2; printf("\ncusts2:\n"); for (r = 0; r < 2; r++) { printf( "name - %s\n", custs2[r].name.arr ); printf( "phone - %d\n", custs2[r].phone ); } EXEC SQL select * INTO :custs3:inds from customers limit 2; printf("\ncusts3:\n"); for (r = 0; r < 2; r++) { printf( "name - %s\n", custs3[r].name.arr ); printf( "phone - %d\n", custs3[r].phone ); } EXEC SQL select * INTO :custs4:inds[0] from customers limit 1; printf("\ncusts4:\n"); printf( "name - %s\n", custs4.name.arr ); printf( "phone - %d\n", custs4.phone ); EXEC SQL select c INTO :onlyname from customers limit 2; printf("\nname:\n"); for (r = 0; r < 2; r++) { printf( "name - %s\n", onlyname[r].arr ); } EXEC SQL disconnect all; return 0; }