On 2/22/20 2:37 PM, Andrus wrote:
Hi!
I'm looking for a way to fix psqlODBC driver regression.
Starting at psqlODBC 09.05.0100 when psqlODBC driver uses libpq for all
operations (earlier versions used libpg only for authentication) ODBC
client
does not show error message details.
For example, users got only generic error message like
Connectivity error: ERROR: insert or update on table "mytable" violates
foreign key constraint "mytable_myfield_fkey
Error message details like
Key (myfield)=(mykeyvalue) is not present in table "mymastertable".;
are no more returned.
How to detailed error message or at least only bad key value "mykeyvalue"
which is returned in error message details ?
Some ideas:
1. First versions of libpq based ODBC drivers returned same error
message "no resource found" for all errors. Hiroshi has fixed it it
later versions. Maybe psqlODBC code can fixed to restore pre-libpq
behaviour.
2. Maybe analyzing odbc logs from pre and after 09.05.0100 drivers may
provide solution. I can provide ODBC log files.
3. psqlODBC allows to pass parameters to libpq from connection string.
Maybe some libpq parameter can fix this.
4. Maybe some Postgres query, postgres extension or direct odbc or
libpq call can used to return last error message details like Windows
API GetLastError() or Unix global errno.
5. Maybe it is possible to to create method which returns error message
detals from postgres log file.
Postgres 12.2 and latest psqlODBC driver 12.01.0000 are used.
psqlODBC is called from Visual FoxPro
What does the log_error_verbosity setting in postgresql.conf show?
Andrus.
--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx