/* test program for libpq (postgresql) */ #include #include #include void sql_get_tuple( int *qryhandle, int *ntuple, char *tuple ) { char *s; char *p; // danilo ( Oid tipo; // danilo ) int nfield=0; int maxfield = PQnfields((PGresult *)*qryhandle); while (nfield < maxfield) { s = PQgetvalue((PGresult *)*qryhandle,*ntuple,nfield); tipo = PQftype((PGresult *)*qryhandle, nfield); p = s; // 1700 numerico // 1043 string // 1231 occurs numerico // 1015 occurs string // comeca danilo if (tipo == 1231 || tipo == 1015) { p++; while (*p) { if (*p == ',') { *tuple++ = '#'; *tuple++ = '%'; } else if (*p == '}') break; else if (*p == '.' && tipo == 1231) *tuple++ = ','; else if (*p != '"') *tuple++ = *p; p++; } } else // termina danilo /* while (*p) { if (*p == '.') { *p= ','; break; } p++; } */ if(*s){ while (*s) { if (tipo == 1700 && *s == '.') { *tuple++ = ','; s++; } else *tuple++ = *s++; } } else *tuple++ = ' '; *tuple++ = '#'; *tuple++ = '%'; nfield++; } }