| #include <stdio.h> |
| |
| 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 ); |
| } |