Try the following, where mystring is an extension of std::string...

mystring sql(
"SELECT COUNT(*) FROM information_schema.tables WHERE table_name='proxies' ");

int               GetIntFromSQL( mystring& sql )
{                
// if there's more than one record in the ResultSet, still only returns the first float
         int               retVal = -1;
         PGresult*       res = GetQueryResult( sql );
        
if ( res )
        {        
int nTuples = PQntuples(res);
                 
int nFields = PQnfields(res);
                 
if ( nTuples > 0  &&  nFields > 0 )
                 {        
char *   val = PQgetvalue(res,0,0);                // get first column, first field
                          retVal = atoi( val );
                 }
                 PQclear( res );
        }
        
return   retVal;
}

PGresult*        GetQueryResult( mystring& sql )
{                
// run a query that may return a result set
        PGresult*        res = PQexec( conn, sql.c_str() );
        
if ( res )
        {        
int      status = PQresultStatus(res);
                 
if ( status != PGRES_TUPLES_OK )
                 {                 
// what happened?
                          fprintf( stderr, "GetQueryResult(%s) -> %s\n", sql.c_str(), PQerrorMessage(conn) );
                          PQclear( res );                                     
// possibly moot
                          res = NULL;
                 }
        }
        
else
        {        fprintf( stderr, "GetQueryResult: insufficient memory to run: %s\n", sql.c_str() );
                 
throw "GetQueryResult: insufficient memory";
        }
        
return   res;
}

At 02:14 AM 1/7/2010, you wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Thu, Jan 07, 2010 at 04:11:03AM +0000, Mike Landis wrote:
>
> The following bug has been logged online:
>
> Bug reference:      5268
> Logged by:          Mike Landis
> Email address:      mlandis@pnmx.com
> PostgreSQL version: 8.4.1
> Operating system:   Vista
> Description:        PQgetvalue incorrectly returns 0
> Details:
>
> When I execute the following SQL:
>
> "SELECT COUNT(*) FROM information_schema.tables WHERE table_name='proxies'"
>
> in the PGAdmmin 1.10.0, rev 7945-7946 query tool, I get "1" (the correct
> answer).  When I run the exact same SQL in a C program, I get a result set
> with one tuple and one field (so far so good), but when I run
> PQgetvalue(resultSet,0,0) I get "0" (wrong answer).
>
> Am I missing something?  You can't do squat in a client program without
> PQgetvalue().  Is any sort of regression test being run against libpq
> functions?

Hm. I don't know for sure, but I'd assume that PGAdmin relies on
libpq...

> What can I do to get this resolved?

Could you show us a more complete test case? That might help in
pin-pointing the problem.

Regards
- -- tomás
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFLRYnoBcgs9XrR2kYRAjV/AJ9+HAZZu5sFKuHw1vp7aZNLKM7ykwCfQ+FX
q+NXaFojGP7uS4O/4Km/stM=
=zblK
-----END PGP SIGNATURE-----

No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 9.0.725 / Virus Database: 270.14.127/2603 - Release Date: 01/06/10 02:35:00