PQgetvalue failed to return column value for non-text data in binary format

From: Jeff Lynn <jmlynn(at)rogers(dot)com>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: PQgetvalue failed to return column value for non-text data in binary format
Date: 2007-05-21 04:34:51
Message-ID: 4651216B.2060707@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 Andrew McNamara 2007-05-21 05:57:59 Re: PQgetvalue failed to return column value for non-text data in binary format
Previous Message Y. Ming Lam 2007-05-21 04:33:28 PQgetvalue failed to get non-text data under binary format