Skip site navigation (1) Skip section navigation (2)

RE: [ODBC] Re: ODBC Interface version 07_01_0005, problemwith C++ exceptions

From: "Mister ics" <mister_ics(at)hotmail(dot)com>
To: Inoue(at)tpf(dot)co(dot)jp
Cc: pgsql-bugs(at)postgresql(dot)org, pgsql-odbc(at)postgresql(dot)org
Subject: RE: [ODBC] Re: ODBC Interface version 07_01_0005, problemwith C++ exceptions
Date: 2001-06-17 17:26:59
Message-ID: F268RjbDt3HvoFOAmEa000187f0@hotmail.com (view raw or flat)
Thread:
Lists: pgsql-bugspgsql-odbc
Hi,

I perfectly agree your analisys of the problem, and i would ask to the ODBC 
developer team to consider the following simple fix in the next version of 
the driver:

in case of errors set SQLSTATE = SQL_ERROR or something else but not 0.

It's more difficult to change the MFC behavior ;)

regards,
     Silvio


>
>Hi,
>Probably the cuase is as follows.
>
>Currently SQLExecute/ExecDirect returns SQL_ERROR and the SQLSTATE ==
>'00000'
>in case of ERRORs and (some) NOTICEs.
>
>Of cource SQL_ERROR means an error but SQLSTATE == '00000' indicates
>success.
>MFC ODBC class seems to ignore the error message when SQLSTATE == '00000'
>(I got the error message in an application using VB).
>
>regards,
>Hiroshi Inoue
>
> > -----Original Message-----
> > From: Kristis Makris [mailto:kristis(dot)makris(at)datasoft(dot)com]
> >
> > Hello,
> >
> >
> > On 14 Jun 2001 15:51:18 +0900, Hiroshi Inoue wrote:
> > > 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
> > >
> > > ---------------------------(end of 
>broadcast)---------------------------
> > > TIP 4: Don't 'kill -9' the postmaster
> > >
> >
> > I don't whether the following has anything to do with this problem, but
> > while developing in VC++ 6 I've come across a few cases where I've sent
> > a valid SQL statement through ODBC that did not take any effect. I've
> > sent an UPDATE statement to postrgres, but nothing was updated. I did
> > not get any errors/exceptions from the driver in a similar try/catch
> > block (so I assumed that the statement was accepted and processed fine).
> > I looked into the C:\psqlodbc_xxx.log file, and did not even see a line
> > in it that shows that the statement was sent to the backend. I only saw
> > I couple of lines that were used to initiate the connection. (driver
> > 7.01.00.05)
> >
> > I haven't been able to reproduce this yet, but I'd be glad to provide a
> > copy of the log and some snippet code if I come across it again.
> >
> > PS. I've been using try/catch instead of TRY/CATCH, and haven't come
> > across the problem described here yet. Could this have something to do
> > with VC++'s TRY/CATCH macros?
> >
> > --
> > ---------------------------------------------------------------------
> > Kristis Makris                          Datasoft Coproration
> > kristis(dot)makris(at)datasoft(dot)com             http://www.datasoft.com
> > ---------------------------------------------------------------------
> >
> >
>

_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.


pgsql-odbc by date

Next:From: Hiroshi InoueDate: 2001-06-18 00:58:49
Subject: Re: Error handling in ODBC
Previous:From: rkrkDate: 2001-06-17 01:34:51
Subject: Re: how to get odbc on postgresql 7.1

pgsql-bugs by date

Next:From: Steve SullivanDate: 2001-06-17 17:59:21
Subject: Memory leak in 7.0.3 JDBC driver
Previous:From: Peter EisentrautDate: 2001-06-17 12:32:58
Subject: Re: furiously yours

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group