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
Andrus.
Posted also in
https://stackoverflow.com/questions/60357505/how-to-fix-psqlodbc-driver-regression-to-get-error-message-details
and in pgsql-general mailist list.