#include #include #include #include #include #include #include EXEC SQL include sqlda.h; int main(void) { sqlda_t *sqlda = NULL; char name_buf[16] = {0}; char var_buf[16] = {0}; EXEC SQL CONNECT TO 'postgres@/tmp:5432' AS conn1; EXEC SQL PREPARE stmt1 FROM "SELECT 123::numeric(3,0), 't'::varchar(2)"; EXEC SQL DECLARE cur1 CURSOR FOR stmt1; EXEC SQL OPEN cur1; EXEC SQL FETCH NEXT FROM cur1 INTO DESCRIPTOR sqlda; if (sqlda == NULL) { fprintf(stderr, "No data\n"); exit(1); } for (int i = 0 ; i < sqlda->sqld ; i++) { sqlvar_t v = sqlda->sqlvar[i]; char *sqldata = v.sqldata; if (v.sqltype == ECPGt_numeric) sqldata = PGTYPESnumeric_to_asc((numeric*)sqlda->sqlvar[i].sqldata, -1); printf("type: %-8s: data: \"%s\"\n", v.sqlname.data, sqldata); } EXEC SQL CLOSE cur1; EXEC SQL COMMIT; EXEC SQL DISCONNECT ALL; return 0; }