<html>
<body>
<font face="Arial, Helvetica" color="#0000FF">Try the following, where
mystring is an extension of std::string...<br><br>
mystring sql( </font>"SELECT COUNT(*) FROM information_schema.tables
WHERE table_name='proxies' ");<br><br>
<font face="Arial, Helvetica" color="#0000FF">int</font>
<font face="Arial, Helvetica"><x-tab>
</x-tab><x-tab>
</x-tab>GetIntFromSQL(
mystring& sql )<br>
{<x-tab> </x-tab><x-tab>
</x-tab></font>
<font face="Arial, Helvetica" color="#008000">// if there's more than one
record in the ResultSet, still only returns the first float<br>
</font><font face="Arial, Helvetica"><x-tab>
</x-tab></font>
<font face="Arial, Helvetica" color="#0000FF">int</font>
<font face="Arial, Helvetica"><x-tab>
</x-tab><x-tab>
</x-tab>retVal = -1;<br>
<x-tab> </x-tab>
PGresult*<x-tab> </x-tab>res =
GetQueryResult( sql );<br>
<x-tab> </x-tab></font>
<font face="Arial, Helvetica" color="#0000FF">if</font>
<font face="Arial, Helvetica"> ( res )<br>
<x-tab> </x-tab>{<x-tab>
</x-tab></font>
<font face="Arial, Helvetica" color="#0000FF">int</font>
<font face="Arial, Helvetica"> nTuples = PQntuples(res);<br>
<x-tab> </x-tab><x-tab>
</x-tab></font>
<font face="Arial, Helvetica" color="#0000FF">int</font>
<font face="Arial, Helvetica"> nFields = PQnfields(res);<br>
<x-tab> </x-tab><x-tab>
</x-tab></font>
<font face="Arial, Helvetica" color="#0000FF">if</font>
<font face="Arial, Helvetica"> ( nTuples > 0 &&
nFields > 0 )<br>
<x-tab> </x-tab><x-tab>
</x-tab>{<x-tab>
</x-tab></font>
<font face="Arial, Helvetica" color="#0000FF">char</font>
<font face="Arial, Helvetica">*<x-tab> </x-tab>val =
PQgetvalue(res,0,0);<x-tab> </x-tab>
<x-tab> </x-tab></font>
<font face="Arial, Helvetica" color="#008000">// get first column, first
field<br>
</font><font face="Arial, Helvetica"><x-tab>
</x-tab><x-tab>
</x-tab><x-tab>
</x-tab>retVal = atoi(
val );<br>
<x-tab> </x-tab><x-tab>
</x-tab>}<br>
<x-tab> </x-tab><x-tab>
</x-tab>PQclear( res
);<br>
<x-tab> </x-tab>}<br>
<x-tab> </x-tab></font>
<font face="Arial, Helvetica" color="#0000FF">return</font>
<font face="Arial, Helvetica"><x-tab> </x-tab>retVal;<br>
</font>}<br><br>
<font face="Arial, Helvetica">PGresult*<x-tab>
</x-tab>GetQueryResult(
mystring& sql )<br>
{<x-tab> </x-tab><x-tab>
</x-tab></font>
<font face="Arial, Helvetica" color="#008000">// run a query that may
return a result set<br>
</font><font face="Arial, Helvetica"><x-tab>
</x-tab>PGresult*<x-tab>
</x-tab>res = PQexec( conn,
sql.c_str() );<br>
<x-tab> </x-tab></font>
<font face="Arial, Helvetica" color="#0000FF">if</font>
<font face="Arial, Helvetica"> ( res )<br>
<x-tab> </x-tab>{<x-tab>
</x-tab></font>
<font face="Arial, Helvetica" color="#0000FF">int</font>
<font face="Arial, Helvetica"><x-tab>
</x-tab>status = PQresultStatus(res);<br>
<x-tab> </x-tab><x-tab>
</x-tab></font>
<font face="Arial, Helvetica" color="#0000FF">if</font>
<font face="Arial, Helvetica"> ( status != PGRES_TUPLES_OK )<br>
<x-tab> </x-tab><x-tab>
</x-tab>{<x-tab>
</x-tab><x-tab>
</x-tab></font>
<font face="Arial, Helvetica" color="#008000">// what happened?<br>
</font><font face="Arial, Helvetica"><x-tab>
</x-tab><x-tab>
</x-tab><x-tab>
</x-tab>fprintf( stderr,
</font><font face="Arial, Helvetica" color="#A31515">
"GetQueryResult(%s) ->
%s\n"</font><font face="Arial, Helvetica">, sql.c_str(),
PQerrorMessage(conn) );<br>
<x-tab> </x-tab><x-tab>
</x-tab><x-tab>
</x-tab>PQclear( res
);<x-tab> </x-tab><x-tab>
</x-tab><x-tab>
</x-tab><x-tab>
</x-tab><x-tab>
</x-tab></font>
<font face="Arial, Helvetica" color="#008000">// possibly moot<br>
</font><font face="Arial, Helvetica"><x-tab>
</x-tab><x-tab>
</x-tab><x-tab>
</x-tab>res = NULL;<br>
<x-tab> </x-tab><x-tab>
</x-tab>}<br>
<x-tab> </x-tab>}<br>
<x-tab> </x-tab></font>
<font face="Arial, Helvetica" color="#0000FF">else<br>
</font><font face="Arial, Helvetica"><x-tab>
</x-tab>{<x-tab>
</x-tab>fprintf( stderr,
</font><font face="Arial, Helvetica" color="#A31515">
"GetQueryResult: insufficient memory to run:
%s\n"</font><font face="Arial, Helvetica">, sql.c_str() );<br>
<x-tab> </x-tab><x-tab>
</x-tab></font>
<font face="Arial, Helvetica" color="#0000FF">throw</font>
<font face="Arial, Helvetica">
</font><font face="Arial, Helvetica" color="#A31515">
"GetQueryResult: insufficient
memory"</font><font face="Arial, Helvetica">;<br>
<x-tab> </x-tab>}<br>
<x-tab> </x-tab></font>
<font face="Arial, Helvetica" color="#0000FF">return</font>
<font face="Arial, Helvetica"><x-tab> </x-tab>res;<br>
</font>}<br><br>
At 02:14 AM 1/7/2010, you wrote:<br>
<blockquote type=cite class=cite cite="">-----BEGIN PGP SIGNED
MESSAGE-----<br>
Hash: SHA1<br><br>
On Thu, Jan 07, 2010 at 04:11:03AM +0000, Mike Landis wrote:<br>
> <br>
> The following bug has been logged online:<br>
> <br>
> Bug reference: 5268<br>
> Logged by:
Mike Landis<br>
> Email address: mlandis(at)pnmx(dot)com<br>
> PostgreSQL version: 8.4.1<br>
> Operating system: Vista<br>
> Description: PQgetvalue
incorrectly returns 0<br>
> Details: <br>
> <br>
> When I execute the following SQL:<br>
> <br>
> "SELECT COUNT(*) FROM information_schema.tables WHERE
table_name='proxies'"<br>
> <br>
> in the PGAdmmin 1.10.0, rev 7945-7946 query tool, I get
"1" (the correct<br>
> answer). When I run the exact same SQL in a C program, I get a
result set<br>
> with one tuple and one field (so far so good), but when I run<br>
> PQgetvalue(resultSet,0,0) I get "0" (wrong answer).<br>
> <br>
> Am I missing something? You can't do squat in a client program
without<br>
> PQgetvalue(). Is any sort of regression test being run against
libpq<br>
> functions?<br><br>
Hm. I don't know for sure, but I'd assume that PGAdmin relies on<br>
libpq...<br><br>
> What can I do to get this resolved?<br><br>
Could you show us a more complete test case? That might help in<br>
pin-pointing the problem.<br><br>
Regards<br>
- -- tomás<br>
-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v1.4.6 (GNU/Linux)<br><br>
iD8DBQFLRYnoBcgs9XrR2kYRAjV/AJ9+HAZZu5sFKuHw1vp7aZNLKM7ykwCfQ+FX<br>
q+NXaFojGP7uS4O/4Km/stM=<br>
=zblK<br>
-----END PGP SIGNATURE-----<br><br>
No virus found in this incoming message.<br>
Checked by AVG -
<a href="http://www.avg.com/" eudora="autourl">www.avg.com</a> <br>
Version: 9.0.725 / Virus Database: 270.14.127/2603 - Release Date:
01/06/10 02:35:00</blockquote></body>
</html>