1#include <stdio.h> 2exec sql include sqlca; 3#include <stdlib.h> 4exec sql include ../regression; 5 6int main(void) 7{ 8 exec sql begin declare section; 9 int *ip1=0; 10 char **cp2=0; 11 int *ipointer1=0; 12 int *ipointer2=0; 13 int colnum; 14 exec sql end declare section; 15 int i; 16 17 ECPGdebug(1, stderr); 18 19 exec sql whenever sqlerror do sqlprint(); 20 exec sql connect to REGRESSDB1; 21 22 exec sql set datestyle to postgres; 23 24 exec sql create table test (a int, b text); 25 exec sql insert into test values (1, 'one'); 26 exec sql insert into test values (2, 'two'); 27 exec sql insert into test values (NULL, 'three'); 28 exec sql insert into test values (4, 'four'); 29 exec sql insert into test values (5, NULL); 30 exec sql insert into test values (NULL, NULL); 31 32 exec sql allocate descriptor mydesc; 33 exec sql select * into sql descriptor mydesc from test; 34 exec sql get descriptor mydesc :colnum=COUNT; 35 exec sql get descriptor mydesc value 1 :ip1=DATA, :ipointer1=INDICATOR; 36 exec sql get descriptor mydesc value 2 :cp2=DATA, :ipointer2=INDICATOR; 37 38 printf("Result (%d columns):\n", colnum); 39 for (i=0;i < sqlca.sqlerrd[2];++i) 40 { 41 if (ipointer1[i]) printf("NULL, "); 42 else printf("%d, ",ip1[i]); 43 44 if (ipointer2[i]) printf("NULL, "); 45 else printf("'%s', ",cp2[i]); 46 printf("\n"); 47 } 48 ECPGfree_auto_mem(); 49 printf("\n"); 50 51 exec sql deallocate descriptor mydesc; 52 exec sql rollback; 53 exec sql disconnect; 54 return 0; 55} 56