Обсуждение: Borland PQexec error in Windows XP

Поиск
Список
Период
Сортировка

Borland PQexec error in Windows XP

От
"G. van Wieringen"
Дата:
Hi all!

Just started my first borland+postgres project and within 5 minutes I found
the following problem:

This piece of code:   char query[]  =
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";   res = PQexec(handle, query );
Gives me, as it should,  this error message:
ERROR: syntax error at or near
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" at
character 1

But this piece of code:   char query[]  =
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";   res = PQexec(handle, query );

Gives me this Debugger Exeption Notification:
"Project Project1.exe raised exeption class EAccessViolation with message
'Access violation at address 32665A50 in module 'CC3260MT.DLL'. Read of
address F840C228'. Process stopped. Use Step or Run to continue."

Note that the first query is just 1 'a' shorter and it does not give the
Debugger Exeption.
Is it possible that PQexec or CC3260MT.DLL can not handle queries that begin
with more than 64 characters?

When I enter the query in psql (linux) on the database machine itelf, it
gives the notice:
NOTICE:  identifier "stringwithmorethan64chars" will be truncated to
"stringwith64chars"
(of course, the text between double quotes is not a part of the actual error
message )

I am using Borland C++ Builder 6 with libpq (compiled with borland from
postgres 7.4.3) under Windows XP.

All help is welcome!

G. van Wieringen
wieri420@planet.nl



Re: Borland PQexec error in Windows XP

От
Tom Lane
Дата:
"G. van Wieringen" <wieri420@planet.nl> writes:
> Is it possible that PQexec or CC3260MT.DLL can not handle queries that begin
> with more than 64 characters?

No; what's considerably more probable is that some part of that code
goes belly-up when trying to process a NOTICE from the backend.  By
default libpq tries to print notices on stderr; what will happen in
your environment when it does that?
        regards, tom lane


Re: Borland PQexec error in Windows XP

От
L J Bayuk
Дата:
G. van Wieringen wrote:
> ...
>     res = PQexec(handle, query );
> 
> Gives me this Debugger Exeption Notification:
> "Project Project1.exe raised exeption class EAccessViolation with message
> 'Access violation at address 32665A50 in module 'CC3260MT.DLL'. Read of
> address F840C228'. Process stopped. Use Step or Run to continue."
> ...

Probably same issue as this: http://archives.postgresql.org/pgsql-interfaces/2004-04/msg00057.php


Re: Borland PQexec error in Windows XP

От
"G. van Wieringen"
Дата:
Hi all!

Thanks for the response!! My problem was similar to
http://archives.postgresql.org/pgsql-interfaces/2004-04/msg00057.php
Every time the server send a notice my application crashed.

The solution stated there, was that I should link the static version
ct32mt.lib with my project. It worked!!!




Re: Borland PQexec error in Windows XP

От
"G. van Wieringen"
Дата:
Oops, sorry, got the name of the lib wrong....

You have to link cp32mt.lib with your project to solve the problem. (located
in C:\.....\Borland\CBuilder6\lib).