List:Commits« Previous MessageNext Message »
From:pharvey Date:September 10 2006 11:43pm
Subject:Connector/ODBC 5 commit: r533 - in trunk/SDK/MYSQLPlus: Library include
View as plain text  
Modified:
   trunk/SDK/MYSQLPlus/Library/Library.pro
   trunk/SDK/MYSQLPlus/Library/MDescriptorRecord.h
   trunk/SDK/MYSQLPlus/Library/MDiagnostic.h
   trunk/SDK/MYSQLPlus/Library/MInternal.h
   trunk/SDK/MYSQLPlus/Library/MResultRes.cpp
   trunk/SDK/MYSQLPlus/Library/MResultRes.h
   trunk/SDK/MYSQLPlus/Library/MStatement.cpp
   trunk/SDK/MYSQLPlus/include/MConnection.h
   trunk/SDK/MYSQLPlus/include/MDescriptor.h
   trunk/SDK/MYSQLPlus/include/MEnvironment.h
   trunk/SDK/MYSQLPlus/include/MStatement.h
Log:
- make various ResultSet types optional at build-time so as to get compiler/linker into
action sooner during wide-spread changes


Modified: trunk/SDK/MYSQLPlus/Library/Library.pro
===================================================================
--- trunk/SDK/MYSQLPlus/Library/Library.pro	2006-09-09 22:07:39 UTC (rev 532)
+++ trunk/SDK/MYSQLPlus/Library/Library.pro	2006-09-10 21:43:22 UTC (rev 533)
@@ -7,7 +7,8 @@
 include( ../../../common.pri )
 include( ../../../config.pri )
 include( ../../../defines.pri )
-CONFIG          += staticlib
+CONFIG          += staticlib ResultPlus
+# CONFIG          += staticlib ResultPlus ResultRes ResultStmt
 INCLUDEPATH	+= ../../C/include
 INCLUDEPATH	+= ../../Dbg/include
 INCLUDEPATH	+= ../../Installer/include
@@ -27,9 +28,6 @@
                 MCommand.h \
                 MCommands.h \
                 MResult.h \
-                MResultPlus.h \
-                MResultRes.h \
-                MResultStmt.h \
                 MDescriptorAPD.h \
                 MDescriptorARD.h \
                 MDescriptorIPD.h \
@@ -42,7 +40,7 @@
                 MDiagnostic.h \
                 MDiagnosticRecord.h \
                 MInternal.h
-		
+
 SOURCES		= \
                 MCommand.cpp \
                 MCommands.cpp \
@@ -51,9 +49,6 @@
                 MStatement.cpp \
                 MDescriptor.cpp \
                 MResult.cpp \
-                MResultPlus.cpp \
-                MResultRes.cpp \
-                MResultStmt.cpp \
                 MDescriptorAPD.cpp \
                 MDescriptorARD.cpp \
                 MDescriptorIPD.cpp \
@@ -66,3 +61,22 @@
                 MDiagnostic.cpp \
                 MDiagnosticRecord.cpp
 
+ResultPlus {
+        DEFINES += RESULTPLUS
+        HEADERS += MResultPlus.h 
+        SOURCES += MResultPlus.cpp
+}
+
+ResultRes {
+        DEFINES += RESULTRES
+        HEADERS += MResultRes.h 
+        SOURCES += MResultRes.cpp
+}
+
+ResultStmt {
+        DEFINES += RESULTSTMT
+        HEADERS += MResultStmt.h 
+        SOURCES += MResultStmt.cpp
+}
+
+

Modified: trunk/SDK/MYSQLPlus/Library/MDescriptorRecord.h
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MDescriptorRecord.h	2006-09-09 22:07:39 UTC (rev 532)
+++ trunk/SDK/MYSQLPlus/Library/MDescriptorRecord.h	2006-09-10 21:43:22 UTC (rev 533)
@@ -33,9 +33,15 @@
     friend class MStatement;
     friend class MDescriptor;
     friend class MResult;
+#ifdef RESULTPLUS
     friend class MResultPlus;
+#endif
+#ifdef RESULTRES
     friend class MResultRes;
+#endif
+#ifdef RESULTSTMT
     friend class MResultStmt;
+#endif
 public:
     MDescriptorRecord( MDescriptor *pDescriptor );
     ~MDescriptorRecord();

Modified: trunk/SDK/MYSQLPlus/Library/MDiagnostic.h
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MDiagnostic.h	2006-09-09 22:07:39 UTC (rev 532)
+++ trunk/SDK/MYSQLPlus/Library/MDiagnostic.h	2006-09-10 21:43:22 UTC (rev 533)
@@ -67,9 +67,15 @@
     friend class MConnection;
     friend class MStatement;
     friend class MResult;
+#ifdef RESULTPLUS
     friend class MResultPlus;
+#endif
+#ifdef RESULTRES
     friend class MResultRes;
+#endif
+#ifdef RESULTSTMT
     friend class MResultStmt;
+#endif
     friend class MDiagnosticRecord;
     friend QTextStream &operator<<( QTextStream &stream, const MDiagnostic
&rval );
 

Modified: trunk/SDK/MYSQLPlus/Library/MInternal.h
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MInternal.h	2006-09-09 22:07:39 UTC (rev 532)
+++ trunk/SDK/MYSQLPlus/Library/MInternal.h	2006-09-10 21:43:22 UTC (rev 533)
@@ -12,9 +12,15 @@
 class MCommands;
 class MCommand;
 class MResult;
+#ifdef RESULTPLUS
 class MResultPlus;
+#endif
+#ifdef RESULTRES
 class MResultRes;
+#endif
+#ifdef RESULTSTMT
 class MResultStmt;
+#endif
 class MDiagnostic;
 class MDiagnosticRecord;
 class MDescriptorAPD;
@@ -45,9 +51,15 @@
 #include "MDescriptorRecordIPD.h"
 #include "MDescriptorRecordIRD.h"
 #include "MResult.h"
-#include "MResultPlus.h"
-#include "MResultRes.h"
-#include "MResultStmt.h"
+#ifdef RESULTPLUS
+    #include "MResultPlus.h"
+#endif
+#ifdef RESULTRES
+    #include "MResultRes.h"
+#endif
+#ifdef RESULTSTMT
+    #include "MResultStmt.h"
+#endif
 
 #endif
 

Modified: trunk/SDK/MYSQLPlus/Library/MResultRes.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MResultRes.cpp	2006-09-09 22:07:39 UTC (rev 532)
+++ trunk/SDK/MYSQLPlus/Library/MResultRes.cpp	2006-09-10 21:43:22 UTC (rev 533)
@@ -117,58 +117,11 @@
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-+++++++++
-
-
-
 /*! 
-    \brief  Use this to get the number of rows in the result-set.
-
-            This will get the number of rows in the result-set. nRow is
-            1-based so nRows is a valid row. This is because we use 0 to indicate
-            that we are 'before the first row' (something like BOF/EOF).
-            
-    \param  pnRows  Reference to storage for the number of rows.
-
-    \return SQLRETURN
-    
-    \sa     getColumns
-            getRow
-*/
-SQLRETURN MResultRes::getRows( qulonglong *pnRows )
-{
-    MYODBCDbgEnter();
-
-    if ( getState() < STATE_EXECUTED )
-        MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY010 ) );
-
-    if ( !isBuffered() )
-        MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000, 0,
tr("getRows() not supported for unbuffered resultset") ) );
-
-    Q_ASSERT( pnRows );
-
-    /*!
-        \internal MYSQL RULE
-
-        mysql_num_rows() returns number of rows (0-n) and generates no 
-        errors.
-
-        \note
-
-        We try to report error anyway ;)
-    */
-    *pnRows = mysql_num_rows( pRes );
-    if ( mysql_errno( getMySQL() ) )
-        MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000,
mysql_errno( getMySQL() ), mysql_error( getMySQL() ) ) );
-
-    MYODBCDbgReturn( SQL_SUCCESS );
-}
-
-/*! 
     \brief  Use this to append a new, blank, row.
 
-            This will append a new blank row at the end of the result-set and make it the
-            current row.
+            This will append a new blank row at the end of the RowSet and make it the
+            RowSetRow.
 
     \todo   Implement MResultRes::doAppend (if needed).
 
@@ -217,14 +170,27 @@
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
+SQLRETURN MResultRes::doCommit()
+{
+    MYODBCDbgEnter();
+
+    /*!
+        \internal
+        \todo
+
+        Implement. 
+
+        \sa MResultStmt::doCommit
+    */
+
+    MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000, 0,
tr("doCommit() not supported in this context") ) );
+}
+
 /*! 
     \brief  Use this to delete the current row.
 
-            This causes a DELETE statement to be sent to the server and, if successful,
-            causes the row to be marked as deleted.
+    \todo   Implement MResultRes::doDelete.
 
-    \todo   Implement MResultRes::doDelete (if needed).
-
     \return SQLRETURN
     
     \sa     doAppend
@@ -252,15 +218,8 @@
             This will execute the prepared statement. A prepared statement must exist and
all
             required parameters must have been supplied.
 
-            The current row will be before the 1st row.
+            ResultSetRow will be before the 1st row.
                         
-    \todo   Add buffered/unbuffered option for MResultRes::doExecute. For now just use 
-            buffered as it enables more features. Currently; many assumptions based upon
us 
-            using buffered such as;
-            - our ability to do more than just scroll-forward 
-            - for us to know the number of rows in the result-set
-            - for us to know the max-length of a columns data
-
     \return SQLRETURN
     
     \sa     doPrepare
@@ -381,12 +340,13 @@
     {
         case BUFFERED_UNBUFFERED:
         case BUFFERED_MYSQL_PLUS:
-            pRes = mysql_use_result( getMySQL() );
+            pRes = mysql_use_result( getMySQL() ); // bring rows to client as needed
             break;
         case BUFFERED_MYSQL_CLIENT:
-            pRes = mysql_store_result( getMySQL() );
+            pRes = mysql_store_result( getMySQL() ); // bring all rows to client now
             break;
         default:
+            MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000, 0,
tr("Unknown buffer type.") ) );
     }
 
     if ( (!pRes && mysql_field_count( getMySQL() )) || mysql_errno( getMySQL() )
)
@@ -427,10 +387,25 @@
     */
     if ( pCommand->isResultSetPossible() )
     {
-        qulonglong nRows = -1;
-        if ( !SQL_SUCCEEDED( getRows( &nRows ) ) )
-            nRows = -1;
+        qulonglong nRows = 0;
 
+        if ( getBuffered() == BUFFERED_MYSQL_CLIENT )
+        {
+            /*!
+                \internal MYSQL RULE
+
+                mysql_num_rows() returns number of rows (0-n) and generates no 
+                errors.
+
+                \note
+
+                We try to report error anyway ;)
+            */
+            nRows = mysql_num_rows( pRes );
+            if ( mysql_errno( getMySQL() ) )
+                MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000,
mysql_errno( getMySQL() ), mysql_error( getMySQL() ) ) );
+        }
+
         getDiagnostic()->setCursorRowCount( nRows );
         getDiagnostic()->setRowCount( nRows );
         setRowsAffected( nRows );
@@ -448,41 +423,73 @@
 }
 
 /*! 
-    \brief  Make the 1st row in the result-set the current row.
+    \brief  Prepares the provided statement.
 
-            This will make the 1st row in the result-set the current row.
-            If no rows exist the current row will be invalid and SQL_NO_DATA will be 
-            returned.
+            This is called to get the server to prepare the statement and to load the
result-set meta-data
+            into the IRD but in a MYSQL_RES based result-set we do not have any real
ability to get meta-data
+            until after we execute so this call does not do too much. 
 
-            The row data will be refreshed and any bound columns will be updated.
-            
+    \param  command Command we are supporting.
+
     \return SQLRETURN
     
-    \sa     setRow
-            getRow
-            getRows
-            doNext
-            doPrev
-            doFirst
-            doLast
-            doSkip
+    \sa     doExecute
 */
-SQLRETURN MResultRes::doFirst()
+SQLRETURN MResultRes::doPrepare( MCommand *pCommand )
 {
     MYODBCDbgEnter();
 
+    if ( getState() != STATE_INITIALIZED ) /* should call doClear() first */
+        MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY010 ) );
+
     /*!
         \internal
         \todo
 
-        Implement. 
-
-        \sa MResultStmt::doFirst
+        We may want to append LIMIT to SELECT commands to account for SQL_ATTR_MAX_ROWS.
     */
+    if ( getMaxRows() )
+    {
+    }
 
-    MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000, 0,
tr("doFirst() not supported in this context") ) );
+    this->pCommand = pCommand;
+
+    setState( STATE_PREPARED );
+
+    MYODBCDbgReturn( SQL_SUCCESS );
 }
 
+SQLRETURN MResultRes::doFirst()
+{
+    MYODBCDbgEnter();
+
+    SQLRETURN nReturn1 = SQL_SUCCESS;
+    SQLRETURN nReturn2 = SQL_SUCCESS;
+
+    switch ( getBuffered() )
+    {
+        case BUFFERED_UNBUFFERED:
+            break;
+        case BUFFERED_MYSQL_PLUS:
+            // have we buffered everything yet?
+            if ( !isResultSetRowsKnown() )
+            {
+                if ( getResultSetRows() < getRowSetSize() )
+                    nReturn = getRowSetData();
+            }
+            break;
+        case BUFFERED_MYSQL_CLIENT:
+            mysql_data_seek( pRes, 0 );
+            break;
+        default:
+            MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000, 0,
tr("Unknown buffer type.") ) );
+    }
+
+    nReturn2 = MResult::doFirst();
+
+    MYODBCDbgReturn( nReturn2 );
+}
+
 /*! 
     \brief  Use this to insert a new, blank, row.
 
@@ -606,40 +613,6 @@
 }
 
 /*! 
-    \brief  Prepares the provided statement.
-
-            This is called to get the server to prepare the statement and to load the
result-set meta-data
-            into the IRD but in a MYSQL_RES based result-set we do not have any real
ability to get meta-data
-            until after we execute so this call does not do too much. 
-
-    \param  command Command we are supporting.
-
-    \return SQLRETURN
-    
-    \sa     doExecute
-*/
-SQLRETURN MResultRes::doPrepare( MCommand *pCommand )
-{
-    MYODBCDbgEnter();
-
-    /*!
-        \internal
-        \todo
-
-        We may want to append LIMIT to SELECT commands to account for SQL_ATTR_MAX_ROWS.
-    */
-
-    if ( getState() != STATE_INITIALIZED ) /* should call doClear() first */
-        MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY010 ) );
-
-    this->pCommand = pCommand;
-
-    setState( STATE_PREPARED );
-
-    MYODBCDbgReturn( SQL_SUCCESS );
-}
-
-/*! 
     \brief  Make the previous row in the result-set the current row.
 
             This will make the previous row in the result-set the current row.
@@ -760,22 +733,6 @@
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResultRes::doCommit()
-{
-    MYODBCDbgEnter();
-
-    /*!
-        \internal
-        \todo
-
-        Implement. 
-
-        \sa MResultStmt::doCommit
-    */
-
-    MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000, 0,
tr("doCommit() not supported in this context") ) );
-}
-
 /*!
     \brief  Downgrades cursor if it exceeds our abilities.
 

Modified: trunk/SDK/MYSQLPlus/Library/MResultRes.h
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MResultRes.h	2006-09-09 22:07:39 UTC (rev 532)
+++ trunk/SDK/MYSQLPlus/Library/MResultRes.h	2006-09-10 21:43:22 UTC (rev 533)
@@ -30,19 +30,21 @@
     /* getters */
     SQLRETURN getData( SQLUSMALLINT nColumn, QVariant &variantData );
 
-    SQLRETURN doPrepare( MCommand *pCommand );
-    SQLRETURN doExecute();
+    /* do'ers */
     SQLRETURN doAppend();
     SQLRETURN doClear();
+    SQLRETURN doCommit();
     SQLRETURN doDelete();
+    SQLRETURN doExecute();
+    SQLRETURN doPrepare( MCommand *pCommand );
     SQLRETURN doFirst();
+
     SQLRETURN doInsert();
     SQLRETURN doLast();
     SQLRETURN doNext();
     SQLRETURN doPrev();
     SQLRETURN doSkip( qlonglong nRows );
     SQLRETURN doGoto( qulonglong nRow );
-    SQLRETURN doCommit();
     SQLRETURN doRefresh();
 
 protected:
@@ -61,9 +63,9 @@
                 IF BUFFERED_UNBUFFERED THEN
                     listRows contains RowSet only
                 ELSE IF BUFFERED_MYSQL_CLIENT THEN
-                    listRows contains RowSet only
+                    listRows contains RowSet only but we can scroll backward and/or seek
                 ELSE IF BUFFERED_MYSQL_PLUS THEN
-                    listRows is loaded, as needed, with ResultSet
+                    listRows is loaded, as needed, with entire ResultSet, we can
scroll/seek and data can be updated  
                 ENDIF
     */
     /*@{*/

Modified: trunk/SDK/MYSQLPlus/Library/MStatement.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MStatement.cpp	2006-09-09 22:07:39 UTC (rev 532)
+++ trunk/SDK/MYSQLPlus/Library/MStatement.cpp	2006-09-10 21:43:22 UTC (rev 533)
@@ -1062,6 +1062,7 @@
     }
 
     /* generate result */
+#ifdef RESULTPLUS
     MResultPlus *pResult = new MResultPlus( this );
 
     nReturn = pResult->getTypeInfo( nDataType );
@@ -1070,6 +1071,9 @@
         delete pResult;
         MYODBCDbgReturn( nReturn );
     }
+#else
+    MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_IM001 ) );
+#endif
 
     setState( STATE_S5 );
 
@@ -2250,6 +2254,7 @@
     }
 
     /* generate result */
+#ifdef RESULTPLUS
     MResultPlus *pResult = new MResultPlus( this );
 
     nReturn = pResult->doColumnPrivileges( stringCatalog, stringSchema, stringTable,
stringColumn );
@@ -2258,6 +2263,9 @@
         delete pResult;
         MYODBCDbgReturn( nReturn );
     }
+#else
+    MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_IM001 ) );
+#endif
 
     setImplicitPrepare( true );
     setState( STATE_S5 );
@@ -2402,6 +2410,7 @@
     }
 
     /* generate result */
+#ifdef RESULTPLUS
     MResultPlus *pResult = new MResultPlus( this );
 
     nReturn = pResult->doColumns( stringCatalog, stringSchema, stringTable,
stringColumn );
@@ -2410,6 +2419,9 @@
         delete pResult;
         MYODBCDbgReturn( nReturn );
     }
+#else
+    MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_IM001 ) );
+#endif
 
     setImplicitPrepare( true );
     setState( STATE_S5 );
@@ -3237,6 +3249,7 @@
     }
 
     /* generate result */
+#ifdef RESULTPLUS
     MResultPlus *pResult = new MResultPlus( this );
 
     nReturn = pResult->doForeignKeys( stringPKCatalog, stringPKSchema, stringPKTable,
stringFKCatalog, stringFKSchema, stringFKTable );
@@ -3245,6 +3258,9 @@
         delete pResult;
         MYODBCDbgReturn( nReturn );
     }
+#else
+    MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_IM001 ) );
+#endif
 
     setImplicitPrepare( true );
     setState( STATE_S5 );
@@ -3997,6 +4013,7 @@
     }
 
     /* generate result */
+#ifdef RESULTPLUS
     MResultPlus *pResult = new MResultPlus( this );
 
     nReturn = pResult->doPrimaryKeys( stringCatalog, stringSchema, stringTable );
@@ -4005,6 +4022,9 @@
         delete pResult;
         MYODBCDbgReturn( nReturn );
     }
+#else
+    MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_IM001 ) );
+#endif
 
     setImplicitPrepare( true );
     setState( STATE_S5 );
@@ -4142,6 +4162,7 @@
     }
 
     /* generate result */
+#ifdef RESULTPLUS
     MResultPlus *pResult = new MResultPlus( this );
 
     nReturn = pResult->doProcedureColumns( stringCatalog, stringSchema,
stringProcedure, stringColumn );
@@ -4150,6 +4171,9 @@
         delete pResult;
         MYODBCDbgReturn( nReturn );
     }
+#else
+    MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_IM001 ) );
+#endif
 
     setImplicitPrepare( true );
     setState( STATE_S5 );
@@ -4284,6 +4308,7 @@
     }
 
     /* generate result */
+#ifdef RESULTPLUS
     MResultPlus *pResult = new MResultPlus( this );
 
     nReturn = pResult->doProcedures( stringCatalog, stringSchema, stringProcedure );
@@ -4292,6 +4317,9 @@
         delete pResult;
         MYODBCDbgReturn( nReturn );
     }
+#else
+    MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_IM001 ) );
+#endif
 
     setImplicitPrepare( true );
     setState( STATE_S5 );
@@ -4753,6 +4781,7 @@
     }
 
     /* generate result */
+#ifdef RESULTPLUS
     MResultPlus *pResult = new MResultPlus( this );
 
     nReturn = pResult->doSpecialColumns( nIdentifierType, stringCatalog, stringSchema,
stringTable, nScope, nNullable );
@@ -4761,6 +4790,9 @@
         delete pResult;
         MYODBCDbgReturn( nReturn );
     }
+#else
+    MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_IM001 ) );
+#endif
 
     setImplicitPrepare( true );
     setState( STATE_S5 );
@@ -4994,6 +5026,7 @@
     }
 
     /* generate result */
+#ifdef RESULTPLUS
     MResultPlus *pResult = new MResultPlus( this );
 
     nReturn = pResult->doStatistics( stringCatalog, stringSchema, stringTable,
nUnique, nReserved );
@@ -5002,6 +5035,9 @@
         delete pResult;
         MYODBCDbgReturn( nReturn );
     }
+#else
+    MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_IM001 ) );
+#endif
 
     setImplicitPrepare( true );
     setState( STATE_S5 );
@@ -5132,6 +5168,7 @@
     }
 
     /* generate result */
+#ifdef RESULTPLUS
     MResultPlus *pResult = new MResultPlus( this );
 
     nReturn = pResult->doTablePrivileges( stringCatalog, stringSchema, stringTable );
@@ -5140,6 +5177,9 @@
         delete pResult;
         MYODBCDbgReturn( nReturn );
     }
+#else
+    MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_IM001 ) );
+#endif
 
     setImplicitPrepare( true );
     setState( STATE_S5 );
@@ -5304,6 +5344,7 @@
     }
 
     /* generate result */
+#ifdef RESULTPLUS
     MResultPlus *pResult = new MResultPlus( this );
 
     nReturn = pResult->doTables( stringCatalog, stringSchema, stringTable,
stringTableType );
@@ -5312,6 +5353,9 @@
         delete pResult;
         MYODBCDbgReturn( nReturn );
     }
+#else
+    MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_IM001 ) );
+#endif
 
     setImplicitPrepare( true );
     setState( STATE_S5 );
@@ -6539,18 +6583,32 @@
     switch ( nStatementType )
     {
         case MConnection::STATEMENT_DYNAMIC:
+#ifdef RESULTRES 
+            pResult = new MResultRes( this );
+#elif RESULTSTMT
+            pResult = new MResultStmt( this );
+#endif
+            break;
+
         case MConnection::STATEMENT_RES:     
+#ifdef RESULTRES 
             pResult = new MResultRes( this );
+#endif
             break;
 
         case MConnection::STATEMENT_STMT:
+#ifdef RESULTSTMT
             pResult = new MResultStmt( this );
+#endif
             break;
 
         default:
             MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000, 0,
QString( tr("Unknown statement type %1") ).arg( nStatementType ) ) );
     }
 
+    if ( !pResult )
+        MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_IM001 ) );
+
     /* get MResult to do more prepare as needed */
     SQLRETURN nReturn = pResult->doPrepare( pCommand );
     if ( !SQL_SUCCEEDED( nReturn ) )

Modified: trunk/SDK/MYSQLPlus/include/MConnection.h
===================================================================
--- trunk/SDK/MYSQLPlus/include/MConnection.h	2006-09-09 22:07:39 UTC (rev 532)
+++ trunk/SDK/MYSQLPlus/include/MConnection.h	2006-09-10 21:43:22 UTC (rev 533)
@@ -9,9 +9,15 @@
     friend class MStatement;
     friend class MDescriptor;
     friend class MResult;
+#ifdef RESULTPLUS
     friend class MResultPlus;
+#endif
+#ifdef RESULTRES
     friend class MResultRes;
+#endif
+#ifdef RESULTSTMT
     friend class MResultStmt;
+#endif
     friend class MCommands;
     friend class MCommand;
 public:

Modified: trunk/SDK/MYSQLPlus/include/MDescriptor.h
===================================================================
--- trunk/SDK/MYSQLPlus/include/MDescriptor.h	2006-09-09 22:07:39 UTC (rev 532)
+++ trunk/SDK/MYSQLPlus/include/MDescriptor.h	2006-09-10 21:43:22 UTC (rev 533)
@@ -35,9 +35,15 @@
 */
 
 class MResult;
+#ifdef RESULTPLUS
 class MResultPlus;
+#endif
+#ifdef RESULTRES
 class MResultRes;
+#endif
+#ifdef RESULTSTMT
 class MResultStmt;
+#endif
 class MDescriptorRecord;
 class MDescriptorRecordAPD;
 class MDescriptorRecordARD;
@@ -47,9 +53,15 @@
 class MDescriptor : public QObject
 {
     friend class MResult;
+#ifdef RESULTPLUS
     friend class MResultPlus;
+#endif
+#ifdef RESULTRES
     friend class MResultRes;
+#endif
+#ifdef RESULTSTMT
     friend class MResultStmt;
+#endif
     friend class MConnection;
     friend class MStatement;
     friend class MDescriptorRecord;

Modified: trunk/SDK/MYSQLPlus/include/MEnvironment.h
===================================================================
--- trunk/SDK/MYSQLPlus/include/MEnvironment.h	2006-09-09 22:07:39 UTC (rev 532)
+++ trunk/SDK/MYSQLPlus/include/MEnvironment.h	2006-09-10 21:43:22 UTC (rev 533)
@@ -6,7 +6,9 @@
 class MEnvironment : public QObject
 {
     friend class MConnection;
+#ifdef RESULTPLUS
     friend class MResultPlus;
+#endif
 public:
     MEnvironment( QObject *pObjectParent = NULL );
     ~MEnvironment();

Modified: trunk/SDK/MYSQLPlus/include/MStatement.h
===================================================================
--- trunk/SDK/MYSQLPlus/include/MStatement.h	2006-09-09 22:07:39 UTC (rev 532)
+++ trunk/SDK/MYSQLPlus/include/MStatement.h	2006-09-10 21:43:22 UTC (rev 533)
@@ -10,9 +10,15 @@
     friend class MStatement;
     friend class MConnection;
     friend class MResult;
+#ifdef RESULTPLUS
     friend class MResultPlus;
+#endif
+#ifdef RESULTRES
     friend class MResultRes;
+#endif
+#ifdef RESULTSTMT
     friend class MResultStmt;
+#endif
     friend class MDescriptor;
 public:
 

Thread
Connector/ODBC 5 commit: r533 - in trunk/SDK/MYSQLPlus: Library includepharvey10 Sep