List:Commits« Previous MessageNext Message »
From:pharvey Date:May 6 2006 6:37pm
Subject:Connector/ODBC 5 commit: r196 - MYSQLPlus/MYSQLPlusLib MYSQLPlus/include doc/Project
View as plain text  
Modified:
   MYSQLPlus/MYSQLPlusLib/MStatement.cpp
   MYSQLPlus/include/MStatement.h
   doc/Project/SituationReport-20060512.ods
Log:


Modified: MYSQLPlus/MYSQLPlusLib/MStatement.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MStatement.cpp	2006-05-06 15:15:15 UTC (rev 195)
+++ MYSQLPlus/MYSQLPlusLib/MStatement.cpp	2006-05-06 18:37:04 UTC (rev 196)
@@ -29,7 +29,6 @@
     nNoscan             = SQL_NOSCAN_DEFAULT;
     nQueryTimeout       = SQL_QUERY_TIMEOUT_DEFAULT;
     nRetrieveData       = SQL_RD_DEFAULT;
-    nRowNumber          = 0;
     nSimulateCursor     = SQL_SC_TRY_UNIQUE;
     nUseBookmarks       = SQL_UB_DEFAULT;
 
@@ -98,10 +97,10 @@
             MYODBCDbgReturn( setAppRowDesc( (MDescriptor*)pValue ) );
 
         case SQL_ATTR_ASYNC_ENABLE:
-            MYODBCDbgReturn( setAsyncEnable( (SQLUINTEGER)pValue );
+            MYODBCDbgReturn( setAsyncEnable( (SQLUINTEGER)pValue ) );
 
         case SQL_ATTR_CONCURRENCY:
-            MYODBCDbgReturn( setConcurrency( (SQLUINTEGER)pValue );
+            MYODBCDbgReturn( setConcurrency( (SQLUINTEGER)pValue ) );
 
         case SQL_ATTR_CURSOR_SCROLLABLE:
             MYODBCDbgReturn( setCursorScrollable( (SQLUINTEGER)pValue ) );
@@ -168,7 +167,7 @@
             MYODBCDbgReturn( setParamsetSize( (SQLUINTEGER)pValue ) );
 
         case SQL_ATTR_QUERY_TIMEOUT:
-            MYODBCDbgReturn( setQueryTimeout( SQLUINTEGER)pValue ) );
+            MYODBCDbgReturn( setQueryTimeout( (SQLUINTEGER)pValue ) );
 
         case SQL_ATTR_RETRIEVE_DATA:
             MYODBCDbgReturn( setRetrieveData( (SQLUINTEGER)pValue ) );
@@ -272,11 +271,11 @@
     switch ( nAttribute )
     {
         case SQL_ATTR_APP_PARAM_DESC:
-            *((MDescriptor*)pValue) = getAppParamDesc();
+            *((MDescriptor**)pValue) = getAppParamDesc();
             break;
 
         case SQL_ATTR_APP_ROW_DESC:
-            *((MDescriptor*)pValue) = getAppRowDesc();
+            *((MDescriptor**)pValue) = getAppRowDesc();
             break;
 
         case SQL_ATTR_ASYNC_ENABLE:
@@ -304,72 +303,120 @@
             break;
 
         case SQL_ATTR_FETCH_BOOKMARK_PTR:
-            *((SQLPOINTER)pValue) = getFetchBookmarkPtr();
+            {
+                SQLPOINTER *pPointer = (SQLPOINTER*)pValue;
+                *pPointer = getFetchBookmarkPtr();
+            }
             break;
 
         case SQL_ATTR_IMP_PARAM_DESC:
-            *pPointer  = pStm->attr_imp_param_desc;
+            *((MDescriptor**)pValue) = getImpParamDesc();
             break;
+
         case SQL_ATTR_IMP_ROW_DESC:
-            *pPointer  = pStm->attr_imp_row_desc;
+            *((MDescriptor**)pValue) = getImpRowDesc();
             break;
+
         case SQL_ATTR_KEYSET_SIZE:
-            *((SQLUINTEGER*)pValue) = pStm->attr_keyset_size;
+            *((SQLUINTEGER*)pValue) = getKeysetSize();
             break;
+
         case SQL_ATTR_MAX_LENGTH:
-            *((SQLUINTEGER*)pValue) = pStm->attr_max_length;
+            *((SQLUINTEGER*)pValue) = getMaxLength();
             break;
+
         case SQL_ATTR_MAX_ROWS:
-            *((SQLUINTEGER*)pValue) = pStm->attr_max_rows;
+            *((SQLUINTEGER*)pValue) = getMaxRows();
             break;
+
         case SQL_ATTR_METADATA_ID:
-            *((SQLUINTEGER*)pValue) = pStm->attr_metadata_id;
+            *((SQLUINTEGER*)pValue) = getMetadataID();
             break;
+
         case SQL_ATTR_NOSCAN:
-            *((SQLUINTEGER*)pValue) = pStm->attr_noscan;
+            *((SQLUINTEGER*)pValue) = getNoscan();
             break;
+
         case SQL_ATTR_PARAM_BIND_OFFSET_PTR:
-            MYODBCDbgReturn( MYODBCDrvGetDescField( pStm->attr_app_param_desc, -1,
SQL_DESC_BIND_OFFSET_PTR, pValuePtr, nBufferLength, pnStringLengthPtr ) );
+            *((SQLINTEGER**)pValue) = getParamBindOffsetPtr();
+            break;
+
         case SQL_ATTR_PARAM_BIND_TYPE:      
-            MYODBCDbgReturn( MYODBCDrvGetDescField( pStm->attr_app_param_desc, -1,
SQL_DESC_BIND_TYPE, pValuePtr, nBufferLength, pnStringLengthPtr ) );
+            *((SQLUINTEGER*)pValue) = getParamBindType();
+            break;
+
         case SQL_ATTR_PARAM_OPERATION_PTR:  
-            MYODBCDbgReturn( MYODBCDrvGetDescField( pStm->attr_app_param_desc, -1,
SQL_DESC_ARRAY_STATUS_PTR, pValuePtr, nBufferLength, pnStringLengthPtr ) );
+            *((SQLUSMALLINT**)pValue) = getParamOperationPtr();
+            break;
+
         case SQL_ATTR_PARAM_STATUS_PTR:     
-            MYODBCDbgReturn( MYODBCDrvGetDescField( pStm->attr_imp_param_desc, -1,
SQL_DESC_ARRAY_STATUS_PTR, pValuePtr, nBufferLength, pnStringLengthPtr ) );
+            *((SQLUSMALLINT**)pValue) = getParamStatusPtr();
+            break;
+
         case SQL_ATTR_PARAMS_PROCESSED_PTR: 
-            MYODBCDbgReturn( MYODBCDrvGetDescField( pStm->attr_imp_param_desc, -1,
SQL_DESC_ROWS_PROCESSED_PTR, pValuePtr, nBufferLength, pnStringLengthPtr ) );
+            *((SQLUINTEGER**)pValue) = getParamsProcessedPtr();
+            break;
+
         case SQL_ATTR_PARAMSET_SIZE:        
-            MYODBCDbgReturn( MYODBCDrvGetDescField( pStm->attr_app_param_desc, -1,
SQL_DESC_ARRAY_SIZE, pValuePtr, nBufferLength, pnStringLengthPtr ) );
+            *((SQLUINTEGER*)pValue) = getParamsetSize();
+            break;
+
         case SQL_ATTR_QUERY_TIMEOUT:
-            *((SQLUINTEGER*)pValue) = pStm->attr_query_timeout;
+            *((SQLUINTEGER*)pValue) = getQueryTimeout();
             break;
+
         case SQL_ATTR_RETRIEVE_DATA:
-            *((SQLUINTEGER*)pValue) = pStm->attr_retrieve_data;
+            *((SQLUINTEGER*)pValue) = getRetrieveData();
             break;
+
         case SQL_ATTR_ROW_ARRAY_SIZE:       
-            MYODBCDbgReturn( MYODBCDrvGetDescField( pStm->attr_app_row_desc, -1,
SQL_DESC_ARRAY_SIZE, pValuePtr, nBufferLength, pnStringLengthPtr ) );
+            *((SQLUINTEGER*)pValue) = getRowArraySize();
+            break;
+
         case SQL_ATTR_ROW_BIND_OFFSET_PTR:  
-            MYODBCDbgReturn( MYODBCDrvGetDescField( pStm->attr_app_row_desc, -1,
SQL_DESC_BIND_OFFSET_PTR, pValuePtr, nBufferLength, pnStringLengthPtr ) );
+            *((SQLINTEGER**)pValue) = getRowBindOffsetPtr();
+            break;
+
         case SQL_ATTR_ROW_BIND_TYPE:
-            MYODBCDbgReturn( MYODBCDrvGetDescField( pStm->attr_app_row_desc, -1,
SQL_DESC_BIND_TYPE, pValuePtr, nBufferLength, pnStringLengthPtr ) );
+            *((SQLUINTEGER*)pValue) = getRowBindType();
+            break;
+
         case SQL_ATTR_ROW_NUMBER:
-            *((SQLUINTEGER*)pValue) = pStm->attr_row_number;
+            /*!
+                \internal ODBC RULE
+
+                The argument Attribute was SQL_ATTR_ROW_NUMBER and the cursor was not
open, or 
+                the cursor was positioned before the start of the result set or after the
end 
+                of the result set.
+            */
+            if ( getState() != STATE_S6 && getState() != STATE_S7 )
+                MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_24000 ) );
+
+            *((SQLUINTEGER*)pValue) = getRowNumber();
             break;
+
         case SQL_ATTR_ROW_OPERATION_PTR:      
-            MYODBCDbgReturn( MYODBCDrvGetDescField( pStm->attr_app_row_desc, -1,
SQL_DESC_ARRAY_STATUS_PTR, pValuePtr, nBufferLength, pnStringLengthPtr ) );
+            *((SQLUSMALLINT**)pValue) = getRowOperationPtr();
+            break;
+
         case SQL_ATTR_ROW_STATUS_PTR:         
-            MYODBCDbgReturn( MYODBCDrvGetDescField( pStm->attr_imp_row_desc, -1,
SQL_DESC_ARRAY_STATUS_PTR, pValuePtr, nBufferLength, pnStringLengthPtr ) );
+            *((SQLUSMALLINT**)pValue) = getRowStatusPtr();
+            break;
+
         case SQL_ATTR_ROWS_FETCHED_PTR:       
-            MYODBCDbgReturn( MYODBCDrvGetDescField( pStm->attr_imp_row_desc, -1,
SQL_DESC_ROWS_PROCESSED_PTR, pValuePtr, nBufferLength, pnStringLengthPtr ) );
+            *((SQLUINTEGER**)pValue) = getRowsFetchedPtr();
+            break;
+
         case SQL_ATTR_SIMULATE_CURSOR:
-            *((SQLUINTEGER*)pValue) = pStm->attr_simulate_cursor;
+            *((SQLUINTEGER*)pValue) = getSimulateCursor();
             break;
+
         case SQL_ATTR_USE_BOOKMARKS:
-            *((SQLUINTEGER*)pValue) = pStm->attr_use_bookmarks;
+            *((SQLUINTEGER*)pValue) = getUseBookmarks();
             break;
+
         default:
-            MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_01000, 0,
"Attribute unknown & ignored." ) );
-            /* MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_HY092 ) ); */
+            MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_HY092 ) )
     }
 
     MYODBCDbgReturn( SQL_SUCCESS );
@@ -1012,11 +1059,11 @@
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MStatement::setParamBindOffsetPtr( SQLINTEGER *pnParamBindOffsetPtr )
+SQLRETURN MStatement::setParamBindOffsetPtr( SQLUINTEGER *pnParamBindOffsetPtr )
 {
     MYODBCDbgEnter();
 
-    MYODBCDbgReturn( pAppParamDesc->setBindOffsetPtr( pnParamBindOffsetPtr ) );
+    MYODBCDbgReturn( pAppParamDesc->setBindOffsetPtr(
(SQLINTEGER*)pnParamBindOffsetPtr ) );
 }
 
 SQLRETURN MStatement::setParamBindType( SQLUINTEGER nParamBindType )
@@ -1424,18 +1471,17 @@
 {
     MYODBCDbgEnter();
 
-    /*!
-        \internal ODBC RULE
+    qulonglong nRow = 0;
 
-        The argument Attribute was SQL_ATTR_ROW_NUMBER and the cursor was not open, or 
-        the cursor was positioned before the start of the result set or after the end 
-        of the result set.
-    */
-    if ( getState() != STATE_S6 && getState() != STATE_S7 )
-        MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_24000 ) );
+    if ( !pResult )
+    {
+        pDiagnostic->doAppend( MDiagnostic::DIA_24000 );
+        MYODBCDbgReturn3( "%d", 0 );
+    }
 
+    pResult->getRow( &nRow );
 
-    MYODBCDbgReturn3( "%d", nRowNumber );
+    MYODBCDbgReturn3( "%d", (SQLUINTEGER)nRow );
 }
 
 SQLUSMALLINT *MStatement::getRowOperationPtr()

Modified: MYSQLPlus/include/MStatement.h
===================================================================
--- MYSQLPlus/include/MStatement.h	2006-05-06 15:15:15 UTC (rev 195)
+++ MYSQLPlus/include/MStatement.h	2006-05-06 18:37:04 UTC (rev 196)
@@ -92,7 +92,7 @@
     SQLRETURN setMaxRows( SQLUINTEGER nMaxRows );                           /*!<
SQL_ATTR_MAX_ROWS                                                  */
     SQLRETURN setMetadataID( SQLUINTEGER nMetadataID );                     /*!<
SQL_ATTR_METADATA_ID                                               */
     SQLRETURN setNoscan( SQLUINTEGER nNoscan );                             /*!<
SQL_ATTR_NOSCAN                                                    */
-    SQLRETURN setParamBindOffsetPtr( SQLINTEGER *pnParamBindOffsetPtr );    /*!<
SQL_ATTR_PARAM_BIND_OFFSET_PTR = APD->SQL_DESC_BIND_OFFSET_PTR     */
+    SQLRETURN setParamBindOffsetPtr( SQLUINTEGER *pnParamBindOffsetPtr );   /*!<
SQL_ATTR_PARAM_BIND_OFFSET_PTR = APD->SQL_DESC_BIND_OFFSET_PTR     */
     SQLRETURN setParamBindType( SQLUINTEGER nParamBindType );               /*!<
SQL_ATTR_PARAM_BIND_TYPE = APD->SQL_DESC_ BIND_TYPE                */
     SQLRETURN setParamOperationPtr( SQLUSMALLINT *pnParamOperationPtr );    /*!<
SQL_ATTR_PARAM_OPERATION_PTR = APD->SQL_DESC_ARRAY_STATUS_PTR      */
     SQLRETURN setParamStatusPtr( SQLUSMALLINT *pnParamStatusPtr );          /*!<
SQL_ATTR_PARAM_STATUS_PTR = IPD->SQL_DESC_ARRAY_STATUS_PTR         */

Modified: doc/Project/SituationReport-20060512.ods
===================================================================
(Binary files differ)

Thread
Connector/ODBC 5 commit: r196 - MYSQLPlus/MYSQLPlusLib MYSQLPlus/include doc/Projectpharvey6 May