PQgetvalue failed to get non-text data under binary format

From: "Y(dot) Ming Lam" <ymlam(at)rogers(dot)com>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: PQgetvalue failed to get non-text data under binary format
Date: 2007-05-21 04:33:28
Message-ID: 46512118.2040105@rogers.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

Hi,

I am new to PostgreSQL and tried using the libpq C library. I can read
a test table using PQgetvalue for text format, i.e. format = 0.
However, when I experiment with using binary output format, I was unable
to read anything else except result set fiend that is in char(x),
varchar(x), i.e., character string data.

What have I done wrong?

int * pId;
LPSTR pszName;
double * pSalary;

PGresult *pResult = PQexecParams(m_pConn, (LPCTSTR)strSelect, nParams,
parmTypes, paramValues, parmLengths, parmFormats, 1);

pId = (int *)PQgetvalue(pResult, row, 0);
pszName = (LPSTR)PQgetvalue(pResult, row, 1);
pSalary = (double *)PQgetvalue(pResult, row, 6);

printf("id: %d name: %s salary: %f", *pId, pszName, *pSalary);

What I got is as follow:

+ + + printing resultset, 2 rows, 8 columns
id: 167772160 name: Amy Who salary: 0.000000
id: 16777216 name: David Smith salary: 0.000000

Which supposed to return:
id: 10 name: Amy Who salary: 150000.00
id: 1 name: David Smith salary: 350000.00

Any help is greatly appreciated!

Jeff

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Jeff Lynn 2007-05-21 04:34:51 PQgetvalue failed to return column value for non-text data in binary format
Previous Message Andrew McNamara 2007-05-17 23:11:39 Re: libpq: NULL in binary parameters