List:Commits« Previous MessageNext Message »
From:pharvey Date:July 7 2006 2:45pm
Subject:Connector/ODBC 5 commit: r429 - in trunk/MYSQLPlus: MYSQLPlusLib include
View as plain text  
Modified:
   trunk/MYSQLPlus/MYSQLPlusLib/MConnection.cpp
   trunk/MYSQLPlus/MYSQLPlusLib/MDescriptor.cpp
   trunk/MYSQLPlus/MYSQLPlusLib/MEnvironment.cpp
   trunk/MYSQLPlus/MYSQLPlusLib/MStatement.cpp
   trunk/MYSQLPlus/include/MConnection.h
   trunk/MYSQLPlus/include/MDescriptor.h
Log:
redirect connection diagnostic to environment during SQLEndTran on environment

Modified: trunk/MYSQLPlus/MYSQLPlusLib/MConnection.cpp
===================================================================
--- trunk/MYSQLPlus/MYSQLPlusLib/MConnection.cpp	2006-07-07 05:33:51 UTC (rev 428)
+++ trunk/MYSQLPlus/MYSQLPlusLib/MConnection.cpp	2006-07-07 14:45:18 UTC (rev 429)
@@ -24,13 +24,14 @@
 
     Q_ASSERT( !pEnvironment );
 
-    pEnvironment->getDiagnostic()->doClear();
+    pEnvironment->pDiagnostic->doClear();
 
-    nState          = STATE_C2;
-    pDiagnostic     = new MDiagnostic( this );
-    nStatementType  = STATEMENT_DYNAMIC;
-    nBufferedType   = BUFFERED_DYNAMIC;
-    pMySQL          = NULL;
+    nState              = STATE_C2;
+    pDiagnostic         = new MDiagnostic( this );
+    pDiagnosticCaller   = NULL;
+    nStatementType      = STATEMENT_DYNAMIC;
+    nBufferedType       = BUFFERED_DYNAMIC;
+    pMySQL              = NULL;
     timeLastQuery.start();
     nServerAliveSanityCheckInterval = 20000;
 
@@ -91,7 +92,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal MYODBC RULE (DM)
@@ -274,7 +275,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC Rule
@@ -474,7 +475,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -1353,7 +1354,7 @@
 {
     MYODBCDbgEnter();
 
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
@@ -1367,7 +1368,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     MYODBCDbgReturn( SQL_ERROR );
 }
@@ -1381,7 +1382,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -1511,7 +1512,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -1539,7 +1540,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /* save some cycles - get this once */
     STATE nState = getState();
@@ -1660,7 +1661,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -1935,7 +1936,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -2173,7 +2174,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -2234,6 +2235,31 @@
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
+/*!
+    \brief  Set the diagnostic to be used by this descriptor.
+
+            This is used to temp. replace the default diagnostic. This is sometimes
needed
+            to redirect the diagnostic messages to the callers diagnostic.
+
+    \note   This should be reset to default diagnostic as soon as possible. The caller
+            must do this when done.
+
+    \param  pDiagnostic The diagnostic handle we should send diagnostic information to.
This
+                        should be NULL to reset the diagnostic to the default.
+
+    \return BOOLEAN
+
+    \sa     getDiagnostic
+*/
+BOOLEAN MConnection::setDiagnostic( MDiagnostic *pDiagnostic )
+{
+    MYODBCDbgEnter();
+
+    pDiagnosticCaller = pDiagnostic;
+
+    MYODBCDbgReturn3( "%d", true );
+}
+
 BOOLEAN MConnection::setState( STATE nState )
 {
     MYODBCDbgEnter();
@@ -2658,6 +2684,9 @@
 {
     MYODBCDbgEnter();
 
+    if ( pDiagnosticCaller )
+        MYODBCDbgReturn3( "%p", pDiagnosticCaller );
+
     MYODBCDbgReturn3( "%p", pDiagnostic );
 }
 
@@ -2761,16 +2790,16 @@
                 nConnectionDead = SQL_CD_FALSE;
                 break;
             case CR_COMMANDS_OUT_OF_SYNC:
-                pDiagnostic->doAppend( MDiagnostic::DIA_01000, nReturn,
"CR_COMMANDS_OUT_OF_SYNC" );
+                getDiagnostic()->doAppend( MDiagnostic::DIA_01000, nReturn,
"CR_COMMANDS_OUT_OF_SYNC" );
                 break;
             case CR_SERVER_GONE_ERROR:
-                pDiagnostic->doAppend( MDiagnostic::DIA_01000, nReturn,
"CR_SERVER_GONE_ERROR" );
+                getDiagnostic()->doAppend( MDiagnostic::DIA_01000, nReturn,
"CR_SERVER_GONE_ERROR" );
                 break;
             case CR_UNKNOWN_ERROR:
-                pDiagnostic->doAppend( MDiagnostic::DIA_01000, nReturn,
"CR_UNKNOWN_ERROR" );
+                getDiagnostic()->doAppend( MDiagnostic::DIA_01000, nReturn,
"CR_UNKNOWN_ERROR" );
                 break;
             case CR_SERVER_LOST:
-                pDiagnostic->doAppend( MDiagnostic::DIA_01000, nReturn,
"CR_SERVER_LOST" );
+                getDiagnostic()->doAppend( MDiagnostic::DIA_01000, nReturn,
"CR_SERVER_LOST" );
                 break;
             default:
                 MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000,
nReturn, tr("Unhandled return code from mysql_ping()") ) );
@@ -4729,7 +4758,7 @@
                            pDataSource->getSOCKET().toUtf8().data(),
                            (uint)nFlags ) )
     {
-        pDiagnostic->doAppend( MDiagnostic::DIA_08001, mysql_errno( (MYSQL*)pMySQL ),
mysql_error( (MYSQL*)pMySQL ) );
+        getDiagnostic()->doAppend( MDiagnostic::DIA_08001, mysql_errno( (MYSQL*)pMySQL
), mysql_error( (MYSQL*)pMySQL ) );
         mysql_close( (MYSQL*)pMySQL );
         pMySQL = NULL;
         MYODBCDbgReturn( SQL_ERROR );
@@ -4789,7 +4818,7 @@
                               pDriverConnect->getSOCKET().toUtf8().data(),
                               (uint)nFlags ) )
     {
-        pDiagnostic->doAppend( MDiagnostic::DIA_08001, mysql_errno( (MYSQL*)pMySQL ),
mysql_error( (MYSQL*)pMySQL ) );
+        getDiagnostic()->doAppend( MDiagnostic::DIA_08001, mysql_errno( (MYSQL*)pMySQL
), mysql_error( (MYSQL*)pMySQL ) );
         mysql_close( (MYSQL*)pMySQL );
         pMySQL = NULL;
         MYODBCDbgReturn( SQL_ERROR );

Modified: trunk/MYSQLPlus/MYSQLPlusLib/MDescriptor.cpp
===================================================================
--- trunk/MYSQLPlus/MYSQLPlusLib/MDescriptor.cpp	2006-07-07 05:33:51 UTC (rev 428)
+++ trunk/MYSQLPlus/MYSQLPlusLib/MDescriptor.cpp	2006-07-07 14:45:18 UTC (rev 429)
@@ -295,7 +295,23 @@
     MYODBCDbgReturn3( "%p", *this );
 }
 
-BOOLEAN MDescriptor::setDiagnosticCaller( MDiagnostic *pDiagnostic )
+/*!
+    \brief  Set the diagnostic to be used by this descriptor.
+
+            This is used to temp. replace the default diagnostic. This is sometimes
needed
+            to redirect the diagnostic messages to the callers diagnostic.
+
+    \note   This should be reset to default diagnostic as soon as possible. The caller
+            must do this when done.
+
+    \param  pDiagnostic The diagnostic handle we should send diagnostic information to.
This
+                        should be NULL to reset the diagnostic to the default.
+
+    \return BOOLEAN
+
+    \sa     getDiagnostic
+*/
+BOOLEAN MDescriptor::setDiagnostic( MDiagnostic *pDiagnostic )
 {
     MYODBCDbgEnter();
 

Modified: trunk/MYSQLPlus/MYSQLPlusLib/MEnvironment.cpp
===================================================================
--- trunk/MYSQLPlus/MYSQLPlusLib/MEnvironment.cpp	2006-07-07 05:33:51 UTC (rev 428)
+++ trunk/MYSQLPlus/MYSQLPlusLib/MEnvironment.cpp	2006-07-07 14:45:18 UTC (rev 429)
@@ -77,7 +77,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -197,7 +197,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /* do it  */
     switch ( nAttribute )
@@ -279,7 +279,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     QList<QObject*> listObjects;
     QListIterator<QObject*> i( (QList<QObject*>)children() );
@@ -291,6 +291,23 @@
         if ( pObject->objectName() == "MConnection" )
         {
             MConnection *pConnection = (MConnection*)pObject;
+
+            /*!
+                \internal MYODBC RULE
+
+                We avoid 'not connected' error from connection.
+            */
+            if ( !pConnection->isConnected() )
+                continue;
+
+            /*!
+                \internal MYODBC RULE
+
+                We redirect connection diagnostic information to our diagnostic. We
ensure
+                that it is reset to default when we are done.
+            */
+            pConnection->setDiagnostic( getDiagnostic() );
+
             SQLRETURN n = pConnection->doEndTran( nCompletionType );
             switch ( n )
             {
@@ -300,8 +317,10 @@
                     nReturn = n;
                     break;
                 default:
+                    pConnection->setDiagnostic( NULL );
                     MYODBCDbgReturn( n );
             }
+            pConnection->setDiagnostic( NULL );
         }
     }
 

Modified: trunk/MYSQLPlus/MYSQLPlusLib/MStatement.cpp
===================================================================
--- trunk/MYSQLPlus/MYSQLPlusLib/MStatement.cpp	2006-07-07 05:33:51 UTC (rev 428)
+++ trunk/MYSQLPlus/MYSQLPlusLib/MStatement.cpp	2006-07-07 14:45:18 UTC (rev 429)
@@ -24,7 +24,7 @@
 
     Q_ASSERT( !pConnection );
 
-    pConnection->getDiagnostic()->doClear();
+    pConnection->pDiagnostic->doClear();
 
     nState              = STATE_S1;
     pDiagnostic         = new MDiagnostic( this );
@@ -90,7 +90,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -194,7 +194,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     MYODBCDbgReturn( SQL_ERROR );
 }
@@ -208,7 +208,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -372,7 +372,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -428,7 +428,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE
@@ -648,7 +648,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -838,7 +838,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -936,7 +936,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -1160,7 +1160,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -1233,8 +1233,8 @@
 
         We do this by exiting to doBindParameterExit1 under all conditions.
     */
-    pImpParamDesc->setDiagnosticCaller( getDiagnostic() );
-    pAppParamDesc->setDiagnosticCaller( getDiagnostic() );
+    pImpParamDesc->setDiagnostic( getDiagnostic() );
+    pAppParamDesc->setDiagnostic( getDiagnostic() );
 
     /*!
         \internal ODBC RULE
@@ -1531,8 +1531,8 @@
         nReturn = SQL_SUCCESS_WITH_INFO;
 
 doBindParameterExit1:
-    pImpParamDesc->setDiagnosticCaller( NULL );
-    pAppParamDesc->setDiagnosticCaller( NULL );
+    pImpParamDesc->setDiagnostic( NULL );
+    pAppParamDesc->setDiagnostic( NULL );
 
     MYODBCDbgReturn( nReturn );
 }
@@ -1546,7 +1546,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     MYODBCDbgReturn( SQL_ERROR );
 }
@@ -1574,7 +1574,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE
@@ -1634,7 +1634,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE
@@ -1675,7 +1675,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     SQLPOINTER pPointer = NULL;
 
@@ -1826,9 +1826,9 @@
         map very well so we take the short-cut.
     */
 
-    getImpRowDesc()->setDiagnosticCaller( getDiagnostic() ); /* redirect descriptor
diagnostics to our diagnostic */
+    getImpRowDesc()->setDiagnostic( getDiagnostic() ); /* redirect descriptor
diagnostics to our diagnostic */
     SQLRETURN nReturn = getImpRowDesc()->getDescField( nColumnNumber,
nFieldIdentifier, pPointer, nBufferLength, (SQLINTEGER*)pnStringLength );
-    getImpRowDesc()->setDiagnosticCaller( NULL ); /* restore original diagnostic */
+    getImpRowDesc()->setDiagnostic( NULL ); /* restore original diagnostic */
 
     MYODBCDbgReturn( nReturn );
 }
@@ -1842,7 +1842,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000, 0, "Driver
Does not support this API" ) );
 }
@@ -1856,7 +1856,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -2067,7 +2067,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -2172,9 +2172,9 @@
     if ( pnNullable )
         *pnNullable = pDescriptorRecord->getNullable();
 
-    getImpRowDesc()->setDiagnosticCaller( getDiagnostic() );
+    getImpRowDesc()->setDiagnostic( getDiagnostic() );
     SQLRETURN nReturn2 = pDescriptorRecord->getColumnSize( pnColumnSize,
pnDecimalDigits );
-    getImpRowDesc()->setDiagnosticCaller( NULL );
+    getImpRowDesc()->setDiagnostic( NULL );
 
     if ( nReturn2 != SQL_SUCCESS )
         nReturn = nReturn2;
@@ -2191,7 +2191,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     MYODBCDbgReturn( SQL_ERROR );
 }
@@ -2264,7 +2264,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -2363,7 +2363,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     MYODBCDbgReturn( SQL_ERROR );
 }
@@ -2377,7 +2377,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -2422,7 +2422,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     MYODBCDbgReturn( SQL_ERROR );
 }
@@ -2436,7 +2436,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -2655,7 +2655,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -2750,7 +2750,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     MYODBCDbgReturn( SQL_ERROR );
 }
@@ -2787,7 +2787,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -2835,7 +2835,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -2903,7 +2903,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     MYODBCDbgReturn( SQL_ERROR );
 }
@@ -2917,7 +2917,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -3058,7 +3058,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -3272,7 +3272,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     MYODBCDbgReturn( SQL_ERROR );
 }
@@ -3286,7 +3286,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     MYODBCDbgReturn( SQL_ERROR );
 }
@@ -3300,7 +3300,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     MYODBCDbgReturn( SQL_ERROR );
 }
@@ -3319,7 +3319,7 @@
         We can do this with this func because we are not going to get value from
         diagnostic header but rather from our cached, internal, value.
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -3504,7 +3504,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -3761,7 +3761,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)
@@ -4003,7 +4003,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     MYODBCDbgReturn( SQL_ERROR );
 }
@@ -4017,7 +4017,7 @@
 
         We clear diagnostic each time an ODBC API call is made (with exceptions).
     */
-    getDiagnostic()->doClear();
+    pDiagnostic->doClear();
 
     /*!
         \internal ODBC RULE (DM)

Modified: trunk/MYSQLPlus/include/MConnection.h
===================================================================
--- trunk/MYSQLPlus/include/MConnection.h	2006-07-07 05:33:51 UTC (rev 428)
+++ trunk/MYSQLPlus/include/MConnection.h	2006-07-07 14:45:18 UTC (rev 429)
@@ -5,6 +5,7 @@
 
 class MConnection : public QObject
 {
+    friend class MEnvironment;
     friend class MStatement;
     friend class MDescriptor;
     friend class MResult;
@@ -74,6 +75,7 @@
 protected:
 
     /* setters */
+    BOOLEAN setDiagnostic( MDiagnostic *pDiagnostic );
     BOOLEAN setState( STATE nState );
     BOOLEAN setServerAliveSanityCheckInterval( int nMilliseconds );
     BOOLEAN setDataSourceName( const QString &stringDataSourceName );
@@ -362,6 +364,7 @@
 private:
     STATE           nState;                 /*!< our current state                    
                                                 */
     MDiagnostic *   pDiagnostic;            /*!< our diagnostic information           
                                                 */
+    MDiagnostic *   pDiagnosticCaller;      /*!< our callers diagnostic information
(send diag here if !NULL)                           */
     SQLHANDLE       pMySQL;                 /*!< SQLHANDLE instead of MYSQL* so we can
avoid *forcing* someone to include mysql headers */
     STATEMENT_TYPE  nStatementType;         /*!< tells MStatement which type of
MResult based class to use                              */
     BUFFERED_TYPE   nBufferedType;          /*!< whether or not we are going to buffer
results - greatly affects result-set handling    */

Modified: trunk/MYSQLPlus/include/MDescriptor.h
===================================================================
--- trunk/MYSQLPlus/include/MDescriptor.h	2006-07-07 05:33:51 UTC (rev 428)
+++ trunk/MYSQLPlus/include/MDescriptor.h	2006-07-07 14:45:18 UTC (rev 429)
@@ -87,7 +87,7 @@
 protected:
 
     /* setters */
-    BOOLEAN setDiagnosticCaller( MDiagnostic *pDiagnostic );
+    BOOLEAN setDiagnostic( MDiagnostic *pDiagnostic );
     virtual SQLRETURN setArraySize( SQLUINTEGER nArraySize );
     virtual SQLRETURN setArrayStatusPtr( SQLUSMALLINT *pnArrayStatusPtr );
     virtual SQLRETURN setBindOffsetPtr( SQLINTEGER *pnBindOffsetPtr );

Thread
Connector/ODBC 5 commit: r429 - in trunk/MYSQLPlus: MYSQLPlusLib includepharvey7 Jul