List:Commits« Previous MessageNext Message »
From:pharvey Date:September 11 2006 6:53am
Subject:Connector/ODBC 5 commit: r535 - trunk/SDK/MYSQLPlus/Library
View as plain text  
Modified:
   trunk/SDK/MYSQLPlus/Library/Library.pro
   trunk/SDK/MYSQLPlus/Library/MConnection.cpp
   trunk/SDK/MYSQLPlus/Library/MInternal.h
   trunk/SDK/MYSQLPlus/Library/MResult.cpp
   trunk/SDK/MYSQLPlus/Library/MResult.h
   trunk/SDK/MYSQLPlus/Library/MResultPlus.cpp
   trunk/SDK/MYSQLPlus/Library/MResultPlus.h
   trunk/SDK/MYSQLPlus/Library/MResultRes.h
   trunk/SDK/MYSQLPlus/Library/MStatement.cpp
Log:
changes/additions for block-cursor support

Modified: trunk/SDK/MYSQLPlus/Library/Library.pro
===================================================================
--- trunk/SDK/MYSQLPlus/Library/Library.pro	2006-09-11 01:53:42 UTC (rev 534)
+++ trunk/SDK/MYSQLPlus/Library/Library.pro	2006-09-11 04:53:45 UTC (rev 535)
@@ -7,7 +7,7 @@
 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

Modified: trunk/SDK/MYSQLPlus/Library/MConnection.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MConnection.cpp	2006-09-11 01:53:42 UTC (rev 534)
+++ trunk/SDK/MYSQLPlus/Library/MConnection.cpp	2006-09-11 04:53:45 UTC (rev 535)
@@ -1780,9 +1780,6 @@
     */
     pDiagnostic->doClear();
 
-    /* save some cycles - get this once */
-    STATE nState = getState();
-
     /*!
         \internal ODBC RULE (DM)
 
@@ -4064,7 +4061,8 @@
 
     MYODBCDbgReturn3( "%d", ( SQL_GD_ANY_COLUMN |
                               SQL_GD_ANY_ORDER |
-                              SQL_GD_BOUND ) );
+                              SQL_GD_BOUND |
+                              SQL_GD_BLOCK ) );
 }
 
 SQLUSMALLINT MConnection::getInfoGroupBy()

Modified: trunk/SDK/MYSQLPlus/Library/MInternal.h
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MInternal.h	2006-09-11 01:53:42 UTC (rev 534)
+++ trunk/SDK/MYSQLPlus/Library/MInternal.h	2006-09-11 04:53:45 UTC (rev 535)
@@ -33,10 +33,15 @@
 class MDescriptorRecordIPD;
 class MDescriptorRecordIRD;
 
-#if defined(_WIN32) && _MSC_VER < 1400
-    typedef QVector<QVariant> MResultRow;
-#endif
+typedef struct tMResultRow
+{
+    SQLUSMALLINT        nStatus;
+    QVector<QVariant>   vectorColumns;
 
+} MResultRow;
+
+typedef QList<MResultRow> MResultRows;
+
 #include "MCommands.h"
 #include "MCommand.h"
 #include "MDiagnostic.h"

Modified: trunk/SDK/MYSQLPlus/Library/MResult.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MResult.cpp	2006-09-11 01:53:42 UTC (rev 534)
+++ trunk/SDK/MYSQLPlus/Library/MResult.cpp	2006-09-11 04:53:45 UTC (rev 535)
@@ -1715,6 +1715,15 @@
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
+void MResult::setState( STATE nState )
+{
+    MYODBCDbgEnter();
+
+    this->nState = nState;
+
+    MYODBCDbgReturn2();
+}
+
 MYSQL *MResult::getMySQL()
 {
     MYODBCDbgEnter();
@@ -3334,85 +3343,85 @@
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toGuidC( MResultGetData *pResultGetData )
+SQLRETURN MResult::toGuidC( MResultGetData * )
 {
     MYODBCDbgEnter();
     MYODBCDbgReturn( SQL_ERROR );
 }
 
-SQLRETURN MResult::toIntervalMonthC( MResultGetData *pResultGetData )
+SQLRETURN MResult::toIntervalMonthC( MResultGetData * )
 {
     MYODBCDbgEnter();
     MYODBCDbgReturn( SQL_ERROR );
 }
 
-SQLRETURN MResult::toIntervalYearC( MResultGetData *pResultGetData )
+SQLRETURN MResult::toIntervalYearC( MResultGetData * )
 {
     MYODBCDbgEnter();
     MYODBCDbgReturn( SQL_ERROR );
 }
 
-SQLRETURN MResult::toIntervalYearToMonthC( MResultGetData *pResultGetData )
+SQLRETURN MResult::toIntervalYearToMonthC( MResultGetData * )
 {
     MYODBCDbgEnter();
     MYODBCDbgReturn( SQL_ERROR );
 }
 
-SQLRETURN MResult::toIntervalDayC( MResultGetData *pResultGetData )
+SQLRETURN MResult::toIntervalDayC( MResultGetData * )
 {
     MYODBCDbgEnter();
     MYODBCDbgReturn( SQL_ERROR );
 }
 
-SQLRETURN MResult::toIntervalHourC( MResultGetData *pResultGetData )
+SQLRETURN MResult::toIntervalHourC( MResultGetData * )
 {
     MYODBCDbgEnter();
     MYODBCDbgReturn( SQL_ERROR );
 }
 
-SQLRETURN MResult::toIntervalMinuteC( MResultGetData *pResultGetData )
+SQLRETURN MResult::toIntervalMinuteC( MResultGetData * )
 {
     MYODBCDbgEnter();
     MYODBCDbgReturn( SQL_ERROR );
 }
 
-SQLRETURN MResult::toIntervalSecondC( MResultGetData *pResultGetData )
+SQLRETURN MResult::toIntervalSecondC( MResultGetData * )
 {
     MYODBCDbgEnter();
     MYODBCDbgReturn( SQL_ERROR );
 }
 
-SQLRETURN MResult::toIntervalDayToHourC( MResultGetData *pResultGetData )
+SQLRETURN MResult::toIntervalDayToHourC( MResultGetData * )
 {
     MYODBCDbgEnter();
     MYODBCDbgReturn( SQL_ERROR );
 }
 
-SQLRETURN MResult::toIntervalDayToMinuteC( MResultGetData *pResultGetData )
+SQLRETURN MResult::toIntervalDayToMinuteC( MResultGetData * )
 {
     MYODBCDbgEnter();
     MYODBCDbgReturn( SQL_ERROR );
 }
 
-SQLRETURN MResult::toIntervalDayToSecondC( MResultGetData *pResultGetData )
+SQLRETURN MResult::toIntervalDayToSecondC( MResultGetData * )
 {
     MYODBCDbgEnter();
     MYODBCDbgReturn( SQL_ERROR );
 }
 
-SQLRETURN MResult::toIntervalHourToMinuteC( MResultGetData *pResultGetData )
+SQLRETURN MResult::toIntervalHourToMinuteC( MResultGetData * )
 {
     MYODBCDbgEnter();
     MYODBCDbgReturn( SQL_ERROR );
 }
 
-SQLRETURN MResult::toIntervalHourToSecondC( MResultGetData *pResultGetData )
+SQLRETURN MResult::toIntervalHourToSecondC( MResultGetData * )
 {
     MYODBCDbgEnter();
     MYODBCDbgReturn( SQL_ERROR );
 }
 
-SQLRETURN MResult::toIntervalMinuteToSecondC( MResultGetData *pResultGetData )
+SQLRETURN MResult::toIntervalMinuteToSecondC( MResultGetData * )
 {
     MYODBCDbgEnter();
     MYODBCDbgReturn( SQL_ERROR );

Modified: trunk/SDK/MYSQLPlus/Library/MResult.h
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MResult.h	2006-09-11 01:53:42 UTC (rev 534)
+++ trunk/SDK/MYSQLPlus/Library/MResult.h	2006-09-11 04:53:45 UTC (rev 535)
@@ -350,9 +350,18 @@
     qulonglong      nRowsAffected;      /*!< number of rows affected by a non-SELECT
statement (catalog and SHOW statements count as SELECT in this case)   */
     SQLUSMALLINT    nRowSetRow;         /*!< Current row in rowset.                   
                                                                     */
     SQLUSMALLINT    nRowSetRows;        /*!< Is RowSetSize but will be less when
RowSet goes beyond ResultSetRows.                                          */
-    STATE           nState;             /*!< our state                                
                                                                     */
 
     /*!
+        \name   listRows
+
+                This contains the ResultSet rows or the RowSet rows depending 
+                upon the cursor settings.
+    */
+    /*@{*/
+    MResultRows     listRows;
+    /*@}*/
+
+    /*!
         \name Statement attributes.
 
         We duplicate these because; 
@@ -379,6 +388,7 @@
     virtual SQLRETURN   setBeforeStart();
     virtual SQLRETURN   setBuffered( BUFFERED bBuffered = BUFFERED_UNBUFFERED );
     SQLRETURN           setGetDataDefault(); // support for getData: this is called when
target C type is SQL_C_DEFAULT  (derive type from IRD)
+    void                setState( STATE nState );
 
     /* getters */
     MYSQL *         getMySQL();
@@ -502,6 +512,7 @@
     */
 
     BUFFERED    nBuffered;      /*!< where is ResultSet buffered - if at all    */
+    STATE       nState;         /*!< our state                                  */
 };
 
 #endif

Modified: trunk/SDK/MYSQLPlus/Library/MResultPlus.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MResultPlus.cpp	2006-09-11 01:53:42 UTC (rev 534)
+++ trunk/SDK/MYSQLPlus/Library/MResultPlus.cpp	2006-09-11 04:53:45 UTC (rev 535)
@@ -23,7 +23,7 @@
     MYODBCDbgReturn2();
 }
 
-SQLRETURN MResultPlus::setData( uint nColumn, const QVariant &variantData )
+SQLRETURN MResultPlus::setData( SQLUSMALLINT nColumn, const QVariant &variantData )
 {
     MYODBCDbgEnter();
 
@@ -174,6 +174,23 @@
     MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY010, 0,
tr("Resultset is read-only.") ) );
 }
 
+/*!
+    \brief  Refresh the application buffers.
+
+            - SQL_ATTR_ROW_STATUS_PTR (row status buffer - must match the RowSetSize)
+                - SQL_ROW_SUCCESS
+                - SQL_ROW_SUCCESS_WITH_INFO
+                - SQL_ROW_ERROR
+                - SQL_ROW_UPDATED 
+                - SQL_ROW_DELETED
+                - SQL_ROW_ADDED
+            - SQL_ATTR_ROWS_FETCHED_PTR (to return RowSetRows)
+            - ARD (bound buffers - must match the RowSetSize)
+            - SQL_ATTR_ROW_BIND_TYPE (bound by columns or rows)
+                - SQL_BIND_BY_COLUMN <default>
+                - length of a structure or an instance of a buffer
+
+*/
 SQLRETURN MResultPlus::doRefresh()
 {
     MYODBCDbgEnter();
@@ -183,7 +200,6 @@
 
     SQLUINTEGER nRowArraySize = getStatement()->getRowArraySize();
 
-++++
     if ( getStatement()->getCursorType() == SQL_CURSOR_FORWARD_ONLY )
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000, 0,
tr("doGoto() not supported when SQL_CURSOR_FORWARD_ONLY") ) );
 

Modified: trunk/SDK/MYSQLPlus/Library/MResultPlus.h
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MResultPlus.h	2006-09-11 01:53:42 UTC (rev 534)
+++ trunk/SDK/MYSQLPlus/Library/MResultPlus.h	2006-09-11 04:53:45 UTC (rev 535)
@@ -83,26 +83,12 @@
 protected:
     /* doers */
     SQLRETURN doStateRollBack( STATE nState );
-    SQLRETURN doApplyCursorRestrictions()
+    SQLRETURN doApplyCursorRestrictions();
     SQLRETURN doAppendVarChar();
 
 private:
-    /*!
-        \name   listResults
+    QStringList stringlistTableTypesPossible;   /*!< supports SQLTables */
 
-                Our result set is a list of rows. Each row is a vector of column data.
Column data 
-                is a QVariant.
-    */
-    /*@{*/
-#if defined(_WIN32) && _MSC_VER < 1400
-    QList<MResultRow>           listResults;
-#else
-    QList<QVector<QVariant>>    listResults;
-#endif
-    /*@}*/
-
-    QStringList                 stringlistTableTypesPossible;   /*!< supports
SQLTables */
-
     QStringList getTableTypes( const QString &stringFilter );
     QStringList getCatalogs( const QString &stringFilter );
     QStringList getSchemas( const QString &stringCatalogFilter, const QString
&stringFilterSchema );

Modified: trunk/SDK/MYSQLPlus/Library/MResultRes.h
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MResultRes.h	2006-09-11 01:53:42 UTC (rev 534)
+++ trunk/SDK/MYSQLPlus/Library/MResultRes.h	2006-09-11 04:53:45 UTC (rev 535)
@@ -50,7 +50,7 @@
 protected:
 
     /* doers */
-    SQLRETURN doApplyCursorRestrictions()
+    SQLRETURN doApplyCursorRestrictions();
     SQLRETURN doStateRollBack( STATE nState );
 
 private:

Modified: trunk/SDK/MYSQLPlus/Library/MStatement.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MStatement.cpp	2006-09-11 01:53:42 UTC (rev 534)
+++ trunk/SDK/MYSQLPlus/Library/MStatement.cpp	2006-09-11 04:53:45 UTC (rev 535)
@@ -1065,7 +1065,7 @@
 #ifdef RESULTPLUS
     MResultPlus *pResult = new MResultPlus( this );
 
-    nReturn = pResult->getTypeInfo( nDataType );
+    nReturn = pResult->doTypeInfo( nDataType );
     if ( !SQL_SUCCEEDED( nReturn ) )
     {
         delete pResult;

Thread
Connector/ODBC 5 commit: r535 - trunk/SDK/MYSQLPlus/Librarypharvey11 Sep