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/Project | pharvey | 6 May |