On Fri, 11 Sep 2015, Mark Morgan Lloyd wrote:

PostgreSQL has a useful feature where application programs can send notifications to each other, this tends to be much "cheaper" than periodically polling a table for changes.

I've had this working on various CPUs and OSes in a number of programs since at least 2.2.4, but it appears to have been broken at some point between 2.6.0 and 2.6.4 with problems persisting through to 3.0.0-rc1 and trunk. The specific fragment of code that's failing looks like this:

 result := badPoll;
 if PQStatus(DbTF.PQConnection1.Handle) <> CONNECTION_OK then
   exit;
 pqConsumeResult := PQconsumeInput(DbTF.PQConnection1.Handle);
 if PQStatus(DbTF.PQConnection1.Handle) <> CONNECTION_OK then
   exit;

If DbTF.PQConnection1 is of type TPQConnection then I think this is your problem. The low-level handle has been moved to the transaction. DbTF.PQConnection1.Handle is then a stub, of no value.

Michael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to