Re: error 23000 is not treated in psqlODBC

From: Hiroshi Inoue <Inoue(at)tpf(dot)co(dot)jp>
To: Support <support(at)insyde(dot)com(dot)br>
Cc: pgsql-odbc(at)postgresql(dot)org
Subject: Re: error 23000 is not treated in psqlODBC
Date: 2003-02-11 00:29:33
Message-ID: 3E4843ED.27E84673@tpf.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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/

In response to

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Jörg Schulz 2003-02-11 11:42:02 ConfigDSN symbol missing in Win32 build
Previous Message Support 2003-02-10 17:33:35 error 23000 is not treated in psqlODBC