ODBC Interface Bug in version 07_01_0005 - Mailing list pgsql-bugs

From Mister X
Subject ODBC Interface Bug in version 07_01_0005
Date
Msg-id GQknO9bSi7citr4T1aZ9FqDWn46C@4ax.com
Whole thread Raw
List pgsql-bugs
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;
Handling errors with C++ exception is a great thing, i thing this is a
bug of ODBC driver. The only way to discover the SQL errors reported
by the back-end is to analyze the driver connection log, after each
SQLExecute failed istruction, and it is not very very confortable for
the programmer :)

 Thank you.

Silvio.   mister_ics@hotmail.com

pgsql-bugs by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: pg_ctl restart just appends to command line instead of regenerating original cmd
Next
From: "David M. Richter"
Date:
Subject: POSTGRES 7.1.2 upgrade on a IRIX 6.4 System