tinycobol/cobroutines/sql_get_tuple.c

67 lines
1.8 KiB
C

/* test program for libpq (postgresql) */
#include <stdio.h>
#include <stdlib.h>
#include <libpq-fe.h>
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++;
}
}