Re: error 23000 is not treated in psqlODBC - Mailing list pgsql-odbc

From Hiroshi Inoue
Subject Re: error 23000 is not treated in psqlODBC
Date
Msg-id 3E4843ED.27E84673@tpf.co.jp
Whole thread Raw
In response to error 23000 is not treated in psqlODBC  ("Support" <support@insyde.com.br>)
List pgsql-odbc
Support wrote:
>
> "For example. you could have MS SQL Server and PostgreSQL servers
> that have exactly the same data. Using ODBC, your Windows application
> would make exactly the same calls and the back-end data source would
> look the same (to the Windows application)." - PostgreSQL 7.2
> Documentation - chap. 7. ODBC Interface
>
> This should happen when I use my system. It works with MySQL and MS SQL
> Server, so it would work with PostgreSQL also, without any change. The
> problem I found is that psqlODBC do not validate all the error codes
> specified by ODBC. The error I related should return "23000/S1010"
> acording to ODBC.
>
> Seeking psqlODBC sources, I found some of this informations/errors were
> treated at environ.c, under a 'case' where most of the psqlODBC errors
> were treated. Following this logic, this is where I should insert
> my code:
>
> case ER_DUP_KEY:
> pg_sqlstate_set(env, szSqlState, "23000", "S1010");
> // key already exists
> break;
>
> This would return the error code I need to treat qhe the user tries to
> insert a duplicated key.

Unfortunately PostgreSQL doesn't support error code at
backend side and it's very hard for clients to detect
error details such as *key already exists*.
There may be a way where we analyze the error message
but I won't do it.

regards,
Hiroshi Inoue
    http://www.geocities.jp/inocchichichi/psqlodbc/

pgsql-odbc by date:

Previous
From: "Support"
Date:
Subject: error 23000 is not treated in psqlODBC
Next
From: Jörg Schulz
Date:
Subject: ConfigDSN symbol missing in Win32 build