List:Commits« Previous MessageNext Message »
From:pharvey Date:November 7 2006 12:18pm
Subject:Connector/ODBC 5 commit: r657 - in trunk: Driver/Driver/Tests SDK/MYSQLPlus/Library
View as plain text  
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 )

Thread
Connector/ODBC 5 commit: r657 - in trunk: Driver/Driver/Tests SDK/MYSQLPlus/Librarypharvey7 Nov
  • Re: Connector/ODBC 5 commit: r657 - in trunk: Driver/Driver/Tests SDK/MYSQLPlus/LibraryJess Balint7 Nov