| 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: | Whole Thread | Raw Message | 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/
| 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 |