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

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

From: Kristis Makris <kristis(dot)makris(at)datasoft(dot)com>
To: Hiroshi Inoue <Inoue(at)tpf(dot)co(dot)jp>
Cc: mister_ics(at)hotmail(dot)com, 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-14 15:37:37
Message-ID: 200106141537.f5EFbgE52854@postgresql.org (view raw or flat)
Thread:
Lists: pgsql-bugspgsql-odbc
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
---------------------------------------------------------------------


In response to

pgsql-odbc by date

Next:From: juerg.rietmannDate: 2001-06-15 13:21:16
Subject: slow performance postgres 7.0.3 and odbc
Previous:From: postgresqlDate: 2001-06-14 11:51:50
Subject: odbc on a mac

pgsql-bugs by date

Next:From: Arcady GenkinDate: 2001-06-14 17:02:58
Subject: Re: PHP's pg_connect() and non-standard location of the socket (was: REPOST: redefining location of the socket file /tmp/.s.PGSQL.5432)
Previous:From: Steve WoodcockDate: 2001-06-14 13:13:35
Subject: Strange \copy failure

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