Re: ODBC Interface version 07_01_0005, problem with C++ exceptions - Mailing list pgsql-bugs

From Hiroshi Inoue
Subject Re: ODBC Interface version 07_01_0005, problem with C++ exceptions
Date
Msg-id 3B285EE6.CD34DA6@tpf.co.jp
Whole thread Raw
In response to ODBC Interface version 07_01_0005, problem with C++ exceptions  (Mister X <mister_ics@hotmail.com>)
Responses Re: [ODBC] Re: ODBC Interface version 07_01_0005, problem with C++ exceptions  (Kristis Makris <kristis.makris@datasoft.com>)
List pgsql-bugs
Mister X wrote:
>
> Hi,
>
> developing in MFC/Visual Studio 6  I've encountered a strange problem
> in last version of ODBC Driver  (actually 07_01_0005). Each time a SQL
> error occours, the istructions TRY/ CATCH doesn't report the error
> string: the CDBException ' member m_strError is empty
> Follows an example:
>
> // MFC C++ Code
>
> CDatabase myDB;
>
> [.....]   // Init and Open database...
>
> //create a table with a WRONG SQL statement:
>
> CString sSQLStatement="CREATE TABLE Dummy (  int DummyID, )";
>                         // The statement is WRONG beacuse the comma
> after the last column definition.
>
> //Executes The statement and catch errors:
>
> TRY
>         {
>         myDB.ExecuteSQL(sSQLStatement);
>         }
>         CATCH(CDBException, e)
>         {
>         AfxMessageBox(e->m_strError);
>         }
> END_CATCH
>
> Well, with driver version v06-50-0000  i got the string "Error
> creating the table; ERROR:  parser: parse error at or near ")", that
> it is the correct error message from the back-end.
> Instead, with Version  07_01_0005 of the ODBC driver,  the string
> e->m_strError is always empty, and the member m_nRetCode of
> CDBException class is = -1;

Probably the cause is the same as another bug I recently
found. I'm asking pgsql-obdc ML why the error handling was
changed.

regards,
Hiroshi Inoue

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: Segmentation fault in psql
Next
From: "Mister ics"
Date:
Subject: Re: ODBC Interface version 07_01_0005, problem with C++ exceptions