Looks ok, but why change the name of MResultSetData? seemed more
consistent with other stuff as getdata and setdata
On Tue, Nov 07, 2006 at 01:18:38PM +0100, pharvey@stripped wrote:
> Modified:
> trunk/Driver/Driver/Tests/MYODBCDriverTest.h
> trunk/Driver/Driver/Tests/TSTDriverConnect.c
> trunk/SDK/MYSQLPlus/Library/MCommand.cpp
> trunk/SDK/MYSQLPlus/Library/MResult.cpp
> trunk/SDK/MYSQLPlus/Library/MResult.h
> trunk/SDK/MYSQLPlus/Library/MResultRes.cpp
> trunk/SDK/MYSQLPlus/Library/MStatement.cpp
> Log:
> FIX: Remove redundant test.
> WIP: Work to fully implement SQLBindParameter.
> ENH: Improved trace/log output.
>
> Modified: trunk/Driver/Driver/Tests/MYODBCDriverTest.h
> ===================================================================
> --- trunk/Driver/Driver/Tests/MYODBCDriverTest.h 2006-11-06 17:29:45 UTC (rev 656)
> +++ trunk/Driver/Driver/Tests/MYODBCDriverTest.h 2006-11-07 12:18:36 UTC (rev 657)
> @@ -78,7 +78,6 @@
> /* for SQLDriverConnect */
> #define MYODBC_DRV_TST_CONNECT
> _T("DSN=NorthwindMyODBC5;UID=myodbctest;PWD=myodbctest;")
> #define MYODBC_DRV_TST_CONNECT2 _T("DRIVER=MySQL Connector/ODBC
> v5;DATABASE=Northwind;UID=myodbctest;PWD=myodbctest;")
> -#define MYODBC_DRV_TST_CONNECT3 _T("DRIVER={MySQL Connector/ODBC
> v5};server=localhost;uid=myodbctest;pwd=myodbctest;database=Northwind;OPTION=16384")
>
> #define MYODBC_DRV_TST_CATALOG _T("Northwind")
> #define MYODBC_DRV_TST_MAX_LEN 1024
>
> Modified: trunk/Driver/Driver/Tests/TSTDriverConnect.c
> ===================================================================
> --- trunk/Driver/Driver/Tests/TSTDriverConnect.c 2006-11-06 17:29:45 UTC (rev 656)
> +++ trunk/Driver/Driver/Tests/TSTDriverConnect.c 2006-11-07 12:18:36 UTC (rev 657)
> @@ -56,14 +56,6 @@
> }
> if ( !TSTDisconnect() ) return FALSE;
>
> - /* connect with DRIVER (using {} in connect string)*/
> - if ( !SQL_SUCCEEDED( MYODBCTstDriverConnect( hDbc, NULL,
> MYODBC_DRV_TST_CONNECT3, SQL_NTS, NULL, 0, 0, SQL_DRIVER_NOPROMPT ) ) )
> - {
> - MYODBCTstFilePrint( stderr, _T("[%s][%d]Failed to connect using [%s].\n"),
> _T(__FILE__), __LINE__, MYODBC_DRV_TST_CONNECT3 );
> - return FALSE;
> - }
> - if ( !TSTDisconnect() ) return FALSE;
> -
> return TRUE;
> }
>
>
> Modified: trunk/SDK/MYSQLPlus/Library/MCommand.cpp
> ===================================================================
> --- trunk/SDK/MYSQLPlus/Library/MCommand.cpp 2006-11-06 17:29:45 UTC (rev 656)
> +++ trunk/SDK/MYSQLPlus/Library/MCommand.cpp 2006-11-07 12:18:36 UTC (rev 657)
> @@ -200,7 +200,7 @@
> {
> MYODBCDbgEnter();
>
> - MYODBCDbgReturn3( "%s", stringCommand );
> + MYODBCDbgReturn1( stringCommand );
> }
>
> /*!
>
> Modified: trunk/SDK/MYSQLPlus/Library/MResult.cpp
> ===================================================================
> --- trunk/SDK/MYSQLPlus/Library/MResult.cpp 2006-11-06 17:29:45 UTC (rev 656)
> +++ trunk/SDK/MYSQLPlus/Library/MResult.cpp 2006-11-07 12:18:36 UTC (rev 657)
> @@ -68,7 +68,7 @@
> MYODBCDbgReturn3( "%d", false );
> }
>
> -MResultSetData::MResultSetData()
> +MResultPutData::MResultPutData()
> {
> MYODBCDbgEnter();
>
> @@ -77,7 +77,7 @@
> MYODBCDbgReturn2();
> }
>
> -void MResultSetData::doClear()
> +void MResultPutData::doClear()
> {
> MYODBCDbgEnter();
>
> @@ -3695,22 +3695,26 @@
> MYODBCDbgReturn( SQL_ERROR );
> }
>
> -SQLRETURN MResult::fromC( MResultSetData *pResultSetData )
> +SQLRETURN MResult::fromC( MResultPutData *pResultPutData )
> {
> MYODBCDbgEnter();
>
> - if ( !pResultSetData->pDescriptorRecordAPD->getDataPtr() )
> +#if MYODBC_DBG > 1
> + MYODBCDbgInfo( QString( "APD::SQL_DESC_DATA_PTR=%1" ).arg( (unsigned
> long)pResultPutData->pDescriptorRecordAPD->getDataPtr() ) );
> +#endif
> +
> + if ( !pResultPutData->pDescriptorRecordAPD->getDataPtr() )
> {
> /* for the moment we are assuming we are being used to create an SQL
> statement */
> - pResultSetData->variantData.setValue( QString( "NULL" ) );
> + pResultPutData->variantData.setValue( QString( "NULL" ) );
> MYODBCDbgReturn( SQL_SUCCESS );
> }
>
> - switch ( pResultSetData->pDescriptorRecordAPD->getConciseType() )
> + switch ( pResultPutData->pDescriptorRecordAPD->getConciseType() )
> {
> case SQL_C_CHAR:
> case SQL_C_WCHAR:
> - MYODBCDbgReturn( fromCharacterC( pResultSetData ) );
> + MYODBCDbgReturn( fromCharacterC( pResultPutData ) );
> case SQL_C_STINYINT:
> case SQL_C_UTINYINT:
> case SQL_C_TINYINT:
> @@ -3725,26 +3729,26 @@
> case SQL_C_SBIGINT:
> case SQL_C_UBIGINT:
> case SQL_C_NUMERIC:
> - MYODBCDbgReturn( fromNumericC( pResultSetData ) );
> + MYODBCDbgReturn( fromNumericC( pResultPutData ) );
> case SQL_C_BIT:
> - MYODBCDbgReturn( fromBitC( pResultSetData ) );
> + MYODBCDbgReturn( fromBitC( pResultPutData ) );
> case SQL_C_BINARY:
> - MYODBCDbgReturn( fromBinaryC( pResultSetData ) );
> + MYODBCDbgReturn( fromBinaryC( pResultPutData ) );
> case SQL_C_GUID:
> - MYODBCDbgReturn( fromGuidC( pResultSetData ) );
> + MYODBCDbgReturn( fromGuidC( pResultPutData ) );
> case SQL_C_TYPE_DATE:
> case SQL_C_DATE: /* ODBC v2 - should already be validated */
> - MYODBCDbgReturn( fromDateC( pResultSetData ) );
> + MYODBCDbgReturn( fromDateC( pResultPutData ) );
> case SQL_C_TYPE_TIME:
> case SQL_C_TIME: /* ODBC v2 - should already be validated */
> - MYODBCDbgReturn( fromTimeC( pResultSetData ) );
> + MYODBCDbgReturn( fromTimeC( pResultPutData ) );
> case SQL_C_TYPE_TIMESTAMP:
> case SQL_C_TIMESTAMP: /* ODBC v2 - should already be validated */
> - MYODBCDbgReturn( fromTimeStampC( pResultSetData ) );
> + MYODBCDbgReturn( fromTimeStampC( pResultPutData ) );
> case SQL_C_INTERVAL_MONTH:
> case SQL_C_INTERVAL_YEAR:
> case SQL_C_INTERVAL_YEAR_TO_MONTH:
> - MYODBCDbgReturn( fromIntervalYearMonthC( pResultSetData ) );
> + MYODBCDbgReturn( fromIntervalYearMonthC( pResultPutData ) );
> case SQL_C_INTERVAL_DAY:
> case SQL_C_INTERVAL_HOUR:
> case SQL_C_INTERVAL_MINUTE:
> @@ -3755,14 +3759,14 @@
> case SQL_C_INTERVAL_HOUR_TO_MINUTE:
> case SQL_C_INTERVAL_HOUR_TO_SECOND:
> case SQL_C_INTERVAL_MINUTE_TO_SECOND:
> - MYODBCDbgReturn( fromIntervalDayTimeC( pResultSetData ) );
> + MYODBCDbgReturn( fromIntervalDayTimeC( pResultPutData ) );
> /* case SQL_C_DEFAULT: */
> }
>
> - MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_HY000, 0,
> QString( tr("unknown C data type %1") ).arg(
> pResultSetData->pDescriptorRecordAPD->getConciseType() ) ) );
> + MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_HY000, 0,
> QString( tr("unknown C data type %1") ).arg(
> pResultPutData->pDescriptorRecordAPD->getConciseType() ) ) );
> }
>
> -SQLRETURN MResult::fromCharacterC( MResultSetData *pResultSetData )
> +SQLRETURN MResult::fromCharacterC( MResultPutData *pResultPutData )
> {
> MYODBCDbgEnter();
>
> @@ -3771,12 +3775,12 @@
>
> Incoming character data is always null terminated (so ignore OctetLength).
>
> */
> - if ( pResultSetData->pDescriptorRecordAPD->getConciseType() == SQL_C_WCHAR
> )
> - pResultSetData->variantData.setValue( MYODBCC::QString_fromWCharArray(
> (SQLWCHAR*)pResultSetData->pDescriptorRecordAPD->getDataPtr() ) );
> + if ( pResultPutData->pDescriptorRecordAPD->getConciseType() == SQL_C_WCHAR
> )
> + pResultPutData->variantData.setValue( MYODBCC::QString_fromWCharArray(
> (SQLWCHAR*)pResultPutData->pDescriptorRecordAPD->getDataPtr() ) );
> else
> - pResultSetData->variantData.setValue( QString::fromAscii(
> (char*)pResultSetData->pDescriptorRecordAPD->getDataPtr() ) );
> + pResultPutData->variantData.setValue( QString::fromAscii(
> (char*)pResultPutData->pDescriptorRecordAPD->getDataPtr() ) );
>
> - switch ( pResultSetData->pDescriptorRecordIPD->getConciseType() )
> + switch ( pResultPutData->pDescriptorRecordIPD->getConciseType() )
> {
> case SQL_CHAR:
> case SQL_VARCHAR:
> @@ -3784,7 +3788,7 @@
> case SQL_WCHAR:
> case SQL_WVARCHAR:
> case SQL_WLONGVARCHAR:
> - pResultSetData->variantData.setValue( "'" +
> pResultSetData->variantData.toString() + "'" );
> + pResultPutData->variantData.setValue( "'" +
> pResultPutData->variantData.toString() + "'" );
> MYODBCDbgReturn( SQL_SUCCESS );
> case SQL_DECIMAL:
> case SQL_NUMERIC:
> @@ -3802,7 +3806,7 @@
> case SQL_INTERVAL_HOUR:
> case SQL_INTERVAL_MINUTE:
> case SQL_INTERVAL_SECOND:
> - if ( pResultSetData->variantData.convert( QVariant::LongLong ) )
> + if ( pResultPutData->variantData.convert( QVariant::LongLong ) )
> MYODBCDbgReturn( SQL_SUCCESS );
> break;
> }
> @@ -3817,49 +3821,52 @@
> MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_07006 ) );
> }
>
> -SQLRETURN MResult::fromNumericC( MResultSetData *pResultSetData )
> +SQLRETURN MResult::fromNumericC( MResultPutData *pResultPutData )
> {
> MYODBCDbgEnter();
>
> /* get number into variant */
> - switch ( pResultSetData->pDescriptorRecordAPD->getConciseType() )
> + switch ( pResultPutData->pDescriptorRecordAPD->getConciseType() )
> {
> case SQL_C_TINYINT:
> case SQL_C_STINYINT:
> - pResultSetData->variantData.setValue(
> *((char*)pResultSetData->pDescriptorRecordAPD->getDataPtr() ) );
> +#if MYODBC_DBG > 1
> + MYODBCDbgInfo( QString( "*APD::SQL_DESC_DATA_PTR=%1" ).arg( *(
> (char*)pResultPutData->pDescriptorRecordAPD->getDataPtr() ) ) );
> +#endif
> + pResultPutData->variantData.setValue( *(
> (char*)pResultPutData->pDescriptorRecordAPD->getDataPtr() ) );
> break;
> case SQL_C_UTINYINT:
> - pResultSetData->variantData.setValue(
> *((SQLCHAR*)pResultSetData->pDescriptorRecordAPD->getDataPtr() ) );
> + pResultPutData->variantData.setValue( *(
> (SQLCHAR*)pResultPutData->pDescriptorRecordAPD->getDataPtr() ) );
> break;
> case SQL_C_SHORT:
> case SQL_C_SSHORT:
> - pResultSetData->variantData.setValue(
> *((SQLSMALLINT*)pResultSetData->pDescriptorRecordAPD->getDataPtr() ) );
> + pResultPutData->variantData.setValue( *(
> (SQLSMALLINT*)pResultPutData->pDescriptorRecordAPD->getDataPtr() ) );
> break;
> case SQL_C_USHORT:
> - pResultSetData->variantData.setValue(
> *((SQLUSMALLINT*)pResultSetData->pDescriptorRecordAPD->getDataPtr() ) );
> + pResultPutData->variantData.setValue( *(
> (SQLUSMALLINT*)pResultPutData->pDescriptorRecordAPD->getDataPtr() ) );
> break;
> case SQL_C_LONG:
> case SQL_C_SLONG:
> - pResultSetData->variantData.setValue(
> *((SQLINTEGER*)pResultSetData->pDescriptorRecordAPD->getDataPtr() ) );
> + pResultPutData->variantData.setValue( *(
> (SQLINTEGER*)pResultPutData->pDescriptorRecordAPD->getDataPtr() ) );
> break;
> case SQL_C_ULONG:
> - pResultSetData->variantData.setValue(
> *((SQLUINTEGER*)pResultSetData->pDescriptorRecordAPD->getDataPtr() ) );
> + pResultPutData->variantData.setValue( *(
> (SQLUINTEGER*)pResultPutData->pDescriptorRecordAPD->getDataPtr() ) );
> break;
> case SQL_C_FLOAT:
> - pResultSetData->variantData.setValue(
> *((SQLREAL*)pResultSetData->pDescriptorRecordAPD->getDataPtr() ) );
> + pResultPutData->variantData.setValue( *(
> (SQLREAL*)pResultPutData->pDescriptorRecordAPD->getDataPtr() ) );
> break;
> case SQL_C_DOUBLE:
> - pResultSetData->variantData.setValue(
> *((SQLDOUBLE*)pResultSetData->pDescriptorRecordAPD->getDataPtr() ) );
> + pResultPutData->variantData.setValue( *(
> (SQLDOUBLE*)pResultPutData->pDescriptorRecordAPD->getDataPtr() ) );
> break;
> case SQL_C_SBIGINT:
> - pResultSetData->variantData.setValue(
> *((SQLBIGINT*)pResultSetData->pDescriptorRecordAPD->getDataPtr() ) );
> + pResultPutData->variantData.setValue( *(
> (SQLBIGINT*)pResultPutData->pDescriptorRecordAPD->getDataPtr() ) );
> break;
> case SQL_C_UBIGINT:
> - pResultSetData->variantData.setValue(
> *((SQLUBIGINT*)pResultSetData->pDescriptorRecordAPD->getDataPtr() ) );
> + pResultPutData->variantData.setValue( *(
> (SQLUBIGINT*)pResultPutData->pDescriptorRecordAPD->getDataPtr() ) );
> break;
> case SQL_C_NUMERIC:
> {
> - SQL_NUMERIC_STRUCT *pNumeric =
> (SQL_NUMERIC_STRUCT*)pResultSetData->pDescriptorRecordAPD->getDataPtr();
> + SQL_NUMERIC_STRUCT *pNumeric =
> (SQL_NUMERIC_STRUCT*)pResultPutData->pDescriptorRecordAPD->getDataPtr();
> char szFormatBuffer[128];
> /*!
> \internal
> @@ -3875,7 +3882,7 @@
> }
>
> /* touch up based upon the requested SQL type */
> - switch ( pResultSetData->pDescriptorRecordIPD->getConciseType() )
> + switch ( pResultPutData->pDescriptorRecordIPD->getConciseType() )
> {
> case SQL_CHAR:
> case SQL_VARCHAR:
> @@ -3883,9 +3890,9 @@
> case SQL_WCHAR:
> case SQL_WVARCHAR:
> case SQL_WLONGVARCHAR:
> - if ( !pResultSetData->variantData.convert( QVariant::String ) )
> + if ( !pResultPutData->variantData.convert( QVariant::String ) )
> break;
> - pResultSetData->variantData.setValue( "'" +
> pResultSetData->variantData.toString() + "'" );
> + pResultPutData->variantData.setValue( "'" +
> pResultPutData->variantData.toString() + "'" );
> MYODBCDbgReturn( SQL_SUCCESS );
> case SQL_DECIMAL:
> case SQL_NUMERIC:
> @@ -3916,13 +3923,13 @@
> MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_07006 ) );
> }
>
> -SQLRETURN MResult::fromBitC( MResultSetData *pResultSetData )
> +SQLRETURN MResult::fromBitC( MResultPutData *pResultPutData )
> {
> MYODBCDbgEnter();
>
> - pResultSetData->variantData.setValue(
> *(SQLCHAR*)pResultSetData->pDescriptorRecordAPD->getDataPtr() );
> + pResultPutData->variantData.setValue(
> *(SQLCHAR*)pResultPutData->pDescriptorRecordAPD->getDataPtr() );
>
> - switch ( pResultSetData->pDescriptorRecordIPD->getConciseType() )
> + switch ( pResultPutData->pDescriptorRecordIPD->getConciseType() )
> {
> case SQL_CHAR:
> case SQL_VARCHAR:
> @@ -3930,9 +3937,9 @@
> case SQL_WCHAR:
> case SQL_WVARCHAR:
> case SQL_WLONGVARCHAR:
> - if ( !pResultSetData->variantData.convert( QVariant::String ) )
> + if ( !pResultPutData->variantData.convert( QVariant::String ) )
> break;
> - pResultSetData->variantData.setValue( "'" +
> pResultSetData->variantData.toString() + "'" );
> + pResultPutData->variantData.setValue( "'" +
> pResultPutData->variantData.toString() + "'" );
> MYODBCDbgReturn( SQL_SUCCESS );
> case SQL_DECIMAL:
> case SQL_NUMERIC:
> @@ -3957,13 +3964,13 @@
> MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_07006 ) );
> }
>
> -SQLRETURN MResult::fromBinaryC( MResultSetData *pResultSetData )
> +SQLRETURN MResult::fromBinaryC( MResultPutData *pResultPutData )
> {
> MYODBCDbgEnter();
>
> - pResultSetData->variantData.setValue( QByteArray(
> (char*)pResultSetData->pDescriptorRecordAPD->getDataPtr(),
> pResultSetData->pDescriptorRecordAPD->getOctetLength() ) );
> + pResultPutData->variantData.setValue( QByteArray(
> (char*)pResultPutData->pDescriptorRecordAPD->getDataPtr(),
> pResultPutData->pDescriptorRecordAPD->getOctetLength() ) );
>
> - switch ( pResultSetData->pDescriptorRecordIPD->getConciseType() )
> + switch ( pResultPutData->pDescriptorRecordIPD->getConciseType() )
> {
> case SQL_CHAR:
> case SQL_VARCHAR:
> @@ -3971,9 +3978,9 @@
> case SQL_WCHAR:
> case SQL_WVARCHAR:
> case SQL_WLONGVARCHAR:
> - if ( !pResultSetData->variantData.convert( QVariant::String ) )
> + if ( !pResultPutData->variantData.convert( QVariant::String ) )
> break;
> - pResultSetData->variantData.setValue( "'" +
> pResultSetData->variantData.toString() + "'" );
> + pResultPutData->variantData.setValue( "'" +
> pResultPutData->variantData.toString() + "'" );
> MYODBCDbgReturn( SQL_SUCCESS );
> case SQL_DECIMAL:
> case SQL_NUMERIC:
> @@ -3992,7 +3999,7 @@
> case SQL_FLOAT:
> case SQL_DOUBLE:
> case SQL_BIT:
> - if ( pResultSetData->variantData.convert( QVariant::LongLong ) )
> + if ( pResultPutData->variantData.convert( QVariant::LongLong ) )
> MYODBCDbgReturn( SQL_SUCCESS );
> break;
> case SQL_TYPE_DATE:
> @@ -4007,9 +4014,9 @@
> We assume that these are NOT stored in SQL_*_STRUCT format but are
> instead
> stored in string format.
> */
> - if ( !pResultSetData->variantData.convert( QVariant::String ) )
> + if ( !pResultPutData->variantData.convert( QVariant::String ) )
> break;
> - pResultSetData->variantData.setValue( "'" +
> pResultSetData->variantData.toString() + "'" );
> + pResultPutData->variantData.setValue( "'" +
> pResultPutData->variantData.toString() + "'" );
> MYODBCDbgReturn( SQL_SUCCESS );
> case SQL_BINARY:
> case SQL_VARBINARY:
> @@ -4027,14 +4034,14 @@
> MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_07006 ) );
> }
>
> -SQLRETURN MResult::fromDateC( MResultSetData *pResultSetData )
> +SQLRETURN MResult::fromDateC( MResultPutData *pResultPutData )
> {
> MYODBCDbgEnter();
>
> - SQL_DATE_STRUCT * pDate =
> (SQL_DATE_STRUCT*)pResultSetData->pDescriptorRecordAPD->getDataPtr();
> + SQL_DATE_STRUCT * pDate =
> (SQL_DATE_STRUCT*)pResultPutData->pDescriptorRecordAPD->getDataPtr();
> char szFormatBuffer[128];
>
> - switch ( pResultSetData->pDescriptorRecordIPD->getConciseType() )
> + switch ( pResultPutData->pDescriptorRecordIPD->getConciseType() )
> {
> case SQL_CHAR:
> case SQL_VARCHAR:
> @@ -4053,7 +4060,7 @@
> pDate->year,
> pDate->month,
> pDate->day );
> - pResultSetData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> + pResultPutData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> MYODBCDbgReturn( SQL_SUCCESS );
> case SQL_TYPE_TIMESTAMP:
> case SQL_TIMESTAMP:
> @@ -4066,7 +4073,7 @@
> pDate->year,
> pDate->month,
> pDate->day );
> - pResultSetData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> + pResultPutData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> MYODBCDbgReturn( SQL_SUCCESS );
> }
>
> @@ -4080,14 +4087,14 @@
> MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_07006 ) );
> }
>
> -SQLRETURN MResult::fromGuidC( MResultSetData *pResultSetData )
> +SQLRETURN MResult::fromGuidC( MResultPutData *pResultPutData )
> {
> MYODBCDbgEnter();
>
> - SQLGUID * pGuid =
> (SQLGUID*)pResultSetData->pDescriptorRecordAPD->getDataPtr();
> + SQLGUID * pGuid =
> (SQLGUID*)pResultPutData->pDescriptorRecordAPD->getDataPtr();
> char szFormatBuffer[128];
>
> - switch ( pResultSetData->pDescriptorRecordIPD->getConciseType() )
> + switch ( pResultPutData->pDescriptorRecordIPD->getConciseType() )
> {
> case SQL_CHAR:
> case SQL_VARCHAR:
> @@ -4116,14 +4123,14 @@
> MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_07006 ) );
> }
>
> -SQLRETURN MResult::fromTimeC( MResultSetData *pResultSetData )
> +SQLRETURN MResult::fromTimeC( MResultPutData *pResultPutData )
> {
> MYODBCDbgEnter();
>
> - SQL_TIME_STRUCT * pTime =
> (SQL_TIME_STRUCT*)pResultSetData->pDescriptorRecordAPD->getDataPtr();
> + SQL_TIME_STRUCT * pTime =
> (SQL_TIME_STRUCT*)pResultPutData->pDescriptorRecordAPD->getDataPtr();
> char szFormatBuffer[128];
>
> - switch ( pResultSetData->pDescriptorRecordIPD->getConciseType() )
> + switch ( pResultPutData->pDescriptorRecordIPD->getConciseType() )
> {
> case SQL_CHAR:
> case SQL_VARCHAR:
> @@ -4140,7 +4147,7 @@
> pTime->hour,
> pTime->minute,
> pTime->second );
> - pResultSetData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> + pResultPutData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> MYODBCDbgReturn( SQL_SUCCESS );
>
> case SQL_TYPE_TIME:
> @@ -4154,7 +4161,7 @@
> pTime->hour,
> pTime->minute,
> pTime->second );
> - pResultSetData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> + pResultPutData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> MYODBCDbgReturn( SQL_SUCCESS );
>
> case SQL_TYPE_TIMESTAMP:
> @@ -4168,7 +4175,7 @@
> pTime->hour,
> pTime->minute,
> pTime->second );
> - pResultSetData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> + pResultPutData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> MYODBCDbgReturn( SQL_SUCCESS );
> }
>
> @@ -4182,14 +4189,14 @@
> MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_07006 ) );
> }
>
> -SQLRETURN MResult::fromTimeStampC( MResultSetData *pResultSetData )
> +SQLRETURN MResult::fromTimeStampC( MResultPutData *pResultPutData )
> {
> MYODBCDbgEnter();
>
> - SQL_TIMESTAMP_STRUCT * pTimestamp =
> (SQL_TIMESTAMP_STRUCT*)pResultSetData->pDescriptorRecordAPD->getDataPtr();
> + SQL_TIMESTAMP_STRUCT * pTimestamp =
> (SQL_TIMESTAMP_STRUCT*)pResultPutData->pDescriptorRecordAPD->getDataPtr();
> char szFormatBuffer[128];
>
> - switch ( pResultSetData->pDescriptorRecordIPD->getConciseType() )
> + switch ( pResultPutData->pDescriptorRecordIPD->getConciseType() )
> {
> case SQL_CHAR:
> case SQL_VARCHAR:
> @@ -4209,7 +4216,7 @@
> pTimestamp->hour,
> pTimestamp->minute,
> pTimestamp->second );
> - pResultSetData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> + pResultPutData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> MYODBCDbgReturn( SQL_SUCCESS );
>
> case SQL_TYPE_DATE:
> @@ -4223,7 +4230,7 @@
> pTimestamp->year,
> pTimestamp->month,
> pTimestamp->day );
> - pResultSetData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> + pResultPutData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> MYODBCDbgReturn( SQL_SUCCESS );
>
> case SQL_TYPE_TIME:
> @@ -4237,7 +4244,7 @@
> pTimestamp->hour,
> pTimestamp->minute,
> pTimestamp->second );
> - pResultSetData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> + pResultPutData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> MYODBCDbgReturn( SQL_SUCCESS );
>
> case SQL_TYPE_TIMESTAMP:
> @@ -4254,7 +4261,7 @@
> pTimestamp->hour,
> pTimestamp->minute,
> pTimestamp->second );
> - pResultSetData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> + pResultPutData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> MYODBCDbgReturn( SQL_SUCCESS );
>
> }
> @@ -4269,15 +4276,15 @@
> MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_07006 ) );
> }
>
> -SQLRETURN MResult::fromIntervalYearMonthC( MResultSetData *pResultSetData )
> +SQLRETURN MResult::fromIntervalYearMonthC( MResultPutData *pResultPutData )
> {
> MYODBCDbgEnter();
>
> - SQL_INTERVAL_STRUCT * pInterval =
> (SQL_INTERVAL_STRUCT*)pResultSetData->pDescriptorRecordAPD->getDataPtr();
> + SQL_INTERVAL_STRUCT * pInterval =
> (SQL_INTERVAL_STRUCT*)pResultPutData->pDescriptorRecordAPD->getDataPtr();
> SQL_YEAR_MONTH_STRUCT * pYearMonth = &pInterval->intval.year_month;
> char szFormatBuffer[128];
>
> - switch ( pResultSetData->pDescriptorRecordIPD->getConciseType() )
> + switch ( pResultPutData->pDescriptorRecordIPD->getConciseType() )
> {
> case SQL_CHAR:
> case SQL_VARCHAR:
> @@ -4293,7 +4300,7 @@
> sprintf( szFormatBuffer, "'%04d:%02d'",
> pYearMonth->year,
> pYearMonth->month );
> - pResultSetData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> + pResultPutData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> MYODBCDbgReturn( SQL_SUCCESS );
> case SQL_DECIMAL:
> case SQL_NUMERIC:
> @@ -4307,9 +4314,9 @@
> We convert to months.
> */
> if ( pInterval->interval_sign == SQL_FALSE )
> - pResultSetData->variantData.setValue( pYearMonth->year * 12 +
> pYearMonth->month );
> + pResultPutData->variantData.setValue( pYearMonth->year * 12 +
> pYearMonth->month );
> else
> - pResultSetData->variantData.setValue( 0 - (pYearMonth->year *
> 12 + pYearMonth->month) );
> + pResultPutData->variantData.setValue( 0 - (pYearMonth->year *
> 12 + pYearMonth->month) );
>
> MYODBCDbgReturn( SQL_SUCCESS );
>
> @@ -4329,15 +4336,15 @@
> MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_07006 ) );
> }
>
> -SQLRETURN MResult::fromIntervalDayTimeC( MResultSetData *pResultSetData )
> +SQLRETURN MResult::fromIntervalDayTimeC( MResultPutData *pResultPutData )
> {
> MYODBCDbgEnter();
>
> - SQL_INTERVAL_STRUCT * pInterval =
> (SQL_INTERVAL_STRUCT*)pResultSetData->pDescriptorRecordAPD->getDataPtr();
> + SQL_INTERVAL_STRUCT * pInterval =
> (SQL_INTERVAL_STRUCT*)pResultPutData->pDescriptorRecordAPD->getDataPtr();
> SQL_DAY_SECOND_STRUCT * pDaySecond = &pInterval->intval.day_second;
> char szFormatBuffer[128];
>
> - switch ( pResultSetData->pDescriptorRecordIPD->getConciseType() )
> + switch ( pResultPutData->pDescriptorRecordIPD->getConciseType() )
> {
> case SQL_CHAR:
> case SQL_VARCHAR:
> @@ -4356,7 +4363,7 @@
> pDaySecond->minute,
> pDaySecond->second,
> pDaySecond->fraction );
> - pResultSetData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> + pResultPutData->variantData.setValue( QString::fromAscii(
> szFormatBuffer ) ); ;
> MYODBCDbgReturn( SQL_SUCCESS );
> case SQL_DECIMAL:
> case SQL_NUMERIC:
> @@ -4370,9 +4377,9 @@
> We convert to seconds (any fraction is truncated).
> */
> if ( pInterval->interval_sign == SQL_FALSE )
> - pResultSetData->variantData.setValue( ((pDaySecond->day * 24 +
> pDaySecond->hour) * 60 + pDaySecond->minute) * 60 + pDaySecond->second );
> + pResultPutData->variantData.setValue( ((pDaySecond->day * 24 +
> pDaySecond->hour) * 60 + pDaySecond->minute) * 60 + pDaySecond->second );
> else
> - pResultSetData->variantData.setValue( 0 - (((pDaySecond->day *
> 24 + pDaySecond->hour) * 60 + pDaySecond->minute) * 60 + pDaySecond->second) );
> + pResultPutData->variantData.setValue( 0 - (((pDaySecond->day *
> 24 + pDaySecond->hour) * 60 + pDaySecond->minute) * 60 + pDaySecond->second) );
>
> if ( pDaySecond->fraction )
> {
>
> Modified: trunk/SDK/MYSQLPlus/Library/MResult.h
> ===================================================================
> --- trunk/SDK/MYSQLPlus/Library/MResult.h 2006-11-06 17:29:45 UTC (rev 656)
> +++ trunk/SDK/MYSQLPlus/Library/MResult.h 2006-11-07 12:18:36 UTC (rev 657)
> @@ -55,24 +55,24 @@
> };
>
> /*!
> - \brief Data to support doSetData.
> + \brief Data to support doPutData.
>
> - doSetData can be used to supply data-at-execution data for two uses:
>
> + doPutData can be used to supply data-at-execution data for two uses:
>
>
> - parameter data to be used in a call to SQLExecute or
> SQLExecDirect
> - column data to be used when a row is updated or added by a call to
> SQLBulkOperations or is updated by a call to SQLSetPos
> */
> -class MResultSetData
> +class MResultPutData
> {
> public:
> - MResultSetData();
> + MResultPutData();
>
> void doClear();
>
> /*
> \note
>
> - We have a string version of data prepared for use in an SQL statement but
> this is going to change to be in synch with
> + We have a string version of data prepared for use in an SQL statement but
> this is going to change to be in sync with
> format as found in resultset. So we have a variant for future.
> */
> QVariant variantData; /*!< data (may be partially
> full depending upon state) */
> @@ -318,7 +318,7 @@
>
> protected:
> MResultGetData resultGetData; /*!< to support getData() (in particular;
> chunking) */
> - MResultSetData resultSetData; /*!< to support doBindParameter()
> */
> + MResultPutData resultSetData; /*!< to support doBindParameter()
> */
> SQLUSMALLINT nRowSetRow; /*!< Current row in rowset.
> */
> SQLUSMALLINT nRowSetRows; /*!< Is RowSetSize but will be less when
> RowSet goes beyond ResultSetRows. */
>
> @@ -511,7 +511,7 @@
> /*!
> \name from*C
>
> - These are used to convert/copy data into an initialized MResultSetData.
> These methods also enforce ODBC rules
> + These are used to convert/copy data into an initialized MResultPutData.
> These methods also enforce ODBC rules
> generalized based upon C type.
>
> \sa
> @@ -519,17 +519,17 @@
> "Converting Data from C to SQL Data Types"
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcconverting_data_from_c_to_sql_data_types.asp
> */
> /*@{*/
> - SQLRETURN fromC( MResultSetData *pResultSetData );
> - SQLRETURN fromCharacterC( MResultSetData *pResultSetData );
> - SQLRETURN fromNumericC( MResultSetData *pResultSetData );
> - SQLRETURN fromBitC( MResultSetData *pResultSetData );
> - SQLRETURN fromBinaryC( MResultSetData *pResultSetData );
> - SQLRETURN fromDateC( MResultSetData *pResultSetData );
> - SQLRETURN fromGuidC( MResultSetData *pResultSetData );
> - SQLRETURN fromTimeC( MResultSetData *pResultSetData );
> - SQLRETURN fromTimeStampC( MResultSetData *pResultSetData );
> - SQLRETURN fromIntervalYearMonthC( MResultSetData *pResultSetData );
> - SQLRETURN fromIntervalDayTimeC( MResultSetData *pResultSetData );
> + SQLRETURN fromC( MResultPutData *pResultPutData );
> + SQLRETURN fromCharacterC( MResultPutData *pResultPutData );
> + SQLRETURN fromNumericC( MResultPutData *pResultPutData );
> + SQLRETURN fromBitC( MResultPutData *pResultPutData );
> + SQLRETURN fromBinaryC( MResultPutData *pResultPutData );
> + SQLRETURN fromDateC( MResultPutData *pResultPutData );
> + SQLRETURN fromGuidC( MResultPutData *pResultPutData );
> + SQLRETURN fromTimeC( MResultPutData *pResultPutData );
> + SQLRETURN fromTimeStampC( MResultPutData *pResultPutData );
> + SQLRETURN fromIntervalYearMonthC( MResultPutData *pResultPutData );
> + SQLRETURN fromIntervalDayTimeC( MResultPutData *pResultPutData );
> /*@}*/
>
> private:
>
> Modified: trunk/SDK/MYSQLPlus/Library/MResultRes.cpp
> ===================================================================
> --- trunk/SDK/MYSQLPlus/Library/MResultRes.cpp 2006-11-06 17:29:45 UTC (rev 656)
> +++ trunk/SDK/MYSQLPlus/Library/MResultRes.cpp 2006-11-07 12:18:36 UTC (rev 657)
> @@ -286,6 +286,10 @@
> doStateRollBack( STATE_INITIALIZED );
> MYODBCDbgReturn( nReturnInternal );
> }
> +#if MYODBC_DBG > 1
> + MYODBCDbgInfo( QString( "variantData.isNull=%1" ).arg(
> resultSetData.variantData.isNull() ) );
> + MYODBCDbgInfo( QString( "variantData=%1" ).arg(
> resultSetData.variantData.toString() ) );
> +#endif
> stringStatement += resultSetData.variantData.toString();
> nParameter++;
> continue;
>
> Modified: trunk/SDK/MYSQLPlus/Library/MStatement.cpp
> ===================================================================
> --- trunk/SDK/MYSQLPlus/Library/MStatement.cpp 2006-11-06 17:29:45 UTC (rev 656)
> +++ trunk/SDK/MYSQLPlus/Library/MStatement.cpp 2006-11-07 12:18:36 UTC (rev 657)
> @@ -1418,12 +1418,14 @@
> MYODBCDbgEnter();
>
> #if MYODBC_DBG > 1
> - MYODBCDbgInfo( QString( "nParameterNumber=%1" ).arg( nParameterNumber ) );
> - MYODBCDbgInfo( QString( "nInputOutputType=%1=%2" ).arg( nInputOutputType ).arg(
> MYODBCC::getInputOutputTypeString( nInputOutputType ) ) );
> - MYODBCDbgInfo( QString( "nValueType=%1=%2" ).arg( nValueType ).arg(
> MYODBCC::getConciseTypeStringC( nValueType ) ) );
> - MYODBCDbgInfo( QString( "nParameterType=%1=%2" ).arg( nParameterType ).arg(
> MYODBCC::getConciseTypeStringSQL( nParameterType ) ) );
> - MYODBCDbgInfo( QString( "nColumnSize=%1" ).arg( nColumnSize ) );
> - MYODBCDbgInfo( QString( "nDecimalDigits=%1" ).arg( nDecimalDigits ) );
> + MYODBCDbgInfo( QString( "nParameterNumber =%1" ).arg( nParameterNumber ) );
> + MYODBCDbgInfo( QString( "nInputOutputType =%1=%2" ).arg( nInputOutputType
> ).arg( MYODBCC::getInputOutputTypeString( nInputOutputType ) ) );
> + MYODBCDbgInfo( QString( "nValueType =%1=%2" ).arg( nValueType ).arg(
> MYODBCC::getConciseTypeStringC( nValueType ) ) );
> + MYODBCDbgInfo( QString( "nParameterType =%1=%2" ).arg( nParameterType ).arg(
> MYODBCC::getConciseTypeStringSQL( nParameterType ) ) );
> + MYODBCDbgInfo( QString( "nColumnSize =%1" ).arg( nColumnSize ) );
> + MYODBCDbgInfo( QString( "nDecimalDigits =%1" ).arg( nDecimalDigits ) );
> + MYODBCDbgInfo( QString( "pParameterValue =%1" ).arg( (unsigned
> long)pParameterValue ) );
> + MYODBCDbgInfo( QString( "pnStrLenOrInd =%1" ).arg( (unsigned
> long)pnStrLenOrInd ) );
> #endif
>
> SQLRETURN nReturn = SQL_SUCCESS;
> @@ -1489,7 +1491,12 @@
> ParameterType.
> */
> if ( nValueType == SQL_C_DEFAULT )
> + {
> nValueType = MYODBCC::getCDefault( getEnvironment()->getODBCVersion(),
> nParameterType );
> +#if MYODBC_DBG > 1
> + MYODBCDbgInfo( QString( "nValueType=%1=%2" ).arg( nValueType ).arg(
> MYODBCC::getConciseTypeStringC( nValueType ) ) );
> +#endif
> + }
>
> /*!
> \internal ODBC RULE (DM)
> @@ -1747,61 +1754,47 @@
> /*!
> \internal ODBC RULE
>
> - There are many rules for this. See ODBC spec.
> + The StrLen_or_IndPtr ..... This argument sets the SQL_DESC_OCTET_LENGTH_PTR
> and
> + SQL_DESC_INDICATOR_PTR record fields of the application parameter pointers.
>
> - \todo
> + \note
>
> - Factor in the ODBC rules found in the spec.
> + Its ok to set SQL_DESC_INDICATOR_PTR & SQL_DESC_OCTET_LENGTH_PTR to same
> pointer when
> + we are dealing with an APD.
> +
> + There are many rules for pnStrLenOrInd.
> +
> + - SQL_NULL_DATA (-1)
> + - SQL_DATA_AT_EXEC (-2)
> + - SQL_NTS (-3)
> + - SQL_DEFAULT_PARAM (-5)
> + - SQL_LEN_DATA_AT_EXEC(len)
> + - null
> + - array of SQLINTEGER
> +
> */
> - if ( pnStrLenOrInd && *pnStrLenOrInd > 0 )
> + nReturn = pAppParamDesc->setDescField( nParameterNumber,
> SQL_DESC_INDICATOR_PTR, pnStrLenOrInd, SQL_IS_POINTER );
> + switch ( nReturn )
> {
> - nReturn = pAppParamDesc->setDescField( nParameterNumber,
> SQL_DESC_INDICATOR_PTR, pnStrLenOrInd, SQL_IS_POINTER );
> - switch ( nReturn )
> - {
> - case SQL_SUCCESS:
> - break;
> - case SQL_SUCCESS_WITH_INFO:
> - bHasInfo = true;
> - break;
> - default:
> - goto doBindParameterExit1;
> - }
> - nReturn = pAppParamDesc->setDescField( nParameterNumber,
> SQL_DESC_OCTET_LENGTH_PTR, NULL, SQL_IS_POINTER );
> - switch ( nReturn )
> - {
> - case SQL_SUCCESS:
> - break;
> - case SQL_SUCCESS_WITH_INFO:
> - bHasInfo = true;
> - break;
> - default:
> - goto doBindParameterExit1;
> - }
> + case SQL_SUCCESS:
> + break;
> + case SQL_SUCCESS_WITH_INFO:
> + bHasInfo = true;
> + break;
> + default:
> + goto doBindParameterExit1;
> }
> - else
> +
> + nReturn = pAppParamDesc->setDescField( nParameterNumber,
> SQL_DESC_OCTET_LENGTH_PTR, pnStrLenOrInd, SQL_IS_POINTER );
> + switch ( nReturn )
> {
> - nReturn = pAppParamDesc->setDescField( nParameterNumber,
> SQL_DESC_OCTET_LENGTH_PTR, pnStrLenOrInd, SQL_IS_POINTER );
> - switch ( nReturn )
> - {
> - case SQL_SUCCESS:
> - break;
> - case SQL_SUCCESS_WITH_INFO:
> - bHasInfo = true;
> - break;
> - default:
> - goto doBindParameterExit1;
> - }
> - nReturn = pAppParamDesc->setDescField( nParameterNumber,
> SQL_DESC_INDICATOR_PTR, NULL, SQL_IS_POINTER );
> - switch ( nReturn )
> - {
> - case SQL_SUCCESS:
> - break;
> - case SQL_SUCCESS_WITH_INFO:
> - bHasInfo = true;
> - break;
> - default:
> - goto doBindParameterExit1;
> - }
> + case SQL_SUCCESS:
> + break;
> + case SQL_SUCCESS_WITH_INFO:
> + bHasInfo = true;
> + break;
> + default:
> + goto doBindParameterExit1;
> }
>
> /*
> @@ -3811,7 +3804,7 @@
> */
> pDiagnostic->doClear();
>
> - MYODBCDbgReturn( SQL_ERROR );
> + MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_IM001 ) );
> }
>
> /*!
> @@ -4498,7 +4491,7 @@
> */
> pDiagnostic->doClear();
>
> - MYODBCDbgReturn( SQL_ERROR );
> + MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_IM001 ) );
> }
>
> SQLRETURN MStatement::doRowCount( SQLINTEGER *pnRowCount )
>
>
> --
> MySQL Code Commits Mailing List
> For list archives: http://lists.mysql.com/commits
> To unsubscribe: http://lists.mysql.com/commits?unsub=1