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

From Support
Subject error 23000 is not treated in psqlODBC
Date
Msg-id 000901c2d12a$8b718720$1afaabc8@insyde
Whole thread Raw
List pgsql-odbc
"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.

But there is also another file where some other errors are defined
(statement.h)
where I should put:

#define ER_DUP_KEY 35 //35 is a sequence where all error that need to be
treated
                      //have (just add 1 to the sequence).


I found that info.c and statement.c also treat som errors, maybe I have to
code
something here?

Can anyone help me? I have also a program to test the error. If anyone
wants...

TIA,
Ricardo.




pgsql-odbc by date:

Previous
From: Giuliano Gavazzi
Date:
Subject: Re: psqlodbc and SQLFetch after SQLTables gives
Next
From: Hiroshi Inoue
Date:
Subject: Re: error 23000 is not treated in psqlODBC