MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:pharvey Date:June 6 2006 11:00pm
Subject:Connector/ODBC 5 commit: r321 - trunk/MYSQLPlus/MYSQLPlusLib
View as plain text  
Modified:
   trunk/MYSQLPlus/MYSQLPlusLib/MResult.cpp
   trunk/MYSQLPlus/MYSQLPlusLib/MResult.h
Log:
some work to get data conversion to a more complete state

Modified: trunk/MYSQLPlus/MYSQLPlusLib/MResult.cpp
===================================================================
--- trunk/MYSQLPlus/MYSQLPlusLib/MResult.cpp	2006-06-06 19:27:05 UTC (rev 320)
+++ trunk/MYSQLPlus/MYSQLPlusLib/MResult.cpp	2006-06-06 23:00:15 UTC (rev 321)
@@ -767,7 +767,6 @@
         case SQL_C_STINYINT:
         case SQL_C_UTINYINT:
         case SQL_C_TINYINT:
-
         case SQL_C_SBIGINT:
         case SQL_C_UBIGINT:
         case SQL_C_SSHORT:
@@ -779,7 +778,10 @@
         case SQL_C_NUMERIC:
         case SQL_C_FLOAT:
         case SQL_C_DOUBLE:
+
         case SQL_C_BIT:
+            MYODBCDbgReturn( toCharC() );
+
         case SQL_C_BINARY:
         case SQL_C_TYPE_DATE:
         case SQL_C_TYPE_TIME:
@@ -1164,7 +1166,7 @@
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toCharStringC()
+SQLRETURN MResult::toCharC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1187,34 +1189,34 @@
         to retrieve 50 characters of data.
     */
 
-    if ( !resultGetData.variantData.canConvert<QString>() )
+    if ( !pResultGetData->variantData.canConvert<QString>() )
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    QString stringData = resultGetData.variantData.toString();
-    if ( resultGetData.pTarget && resultGetData.nBytesMax )
+    QString stringData = pResultGetData->variantData.toString();
+    if ( pResultGetData->pTarget && pResultGetData->nBytesMax )
     {
-        if ( MYODBCC::doStringCopyOut( (SQLCHAR*)resultGetData.pTarget,
resultGetData.nBytesMax, (SQLCHAR*)stringData.toAscii().data() ) )
+        if ( MYODBCC::doStringCopyOut( (SQLCHAR*)pResultGetData->pTarget,
pResultGetData->nBytesMax, (SQLCHAR*)stringData.toAscii().data() ) )
         {
-            resultGetData.variantData.clear();
-            if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+            pResultGetData->variantData.clear();
+            if ( pResultGetData->pnBytesRemaining )
*pResultGetData->pnBytesRemaining = 0;
         }
         else
         {
-            if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining =
stringData.length() - resultGetData.nBytesMax;
-            resultGetData.variantData.setValue( stringData.mid( resultGetData.nBytesMax -
1 ) );
+            if ( pResultGetData->pnBytesRemaining )
*pResultGetData->pnBytesRemaining = stringData.length() - pResultGetData->nBytesMax;
+            pResultGetData->variantData.setValue( stringData.mid(
pResultGetData->nBytesMax - 1 ) );
             MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
         }
     }
     else 
     {
-        if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining =
stringData.length();
+        if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining =
stringData.length();
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toWideCharStringC()
+SQLRETURN MResult::toWCharC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1237,34 +1239,34 @@
         to retrieve 50 characters of data.
     */
 
-    if ( !resultGetData.variantData.canConvert<QString>() )
+    if ( !pResultGetData->variantData.canConvert<QString>() )
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    QString stringData = resultGetData.variantData.toString();
-    if ( resultGetData.pTarget && resultGetData.nBytesMax )
+    QString stringData = pResultGetData->variantData.toString();
+    if ( pResultGetData->pTarget && pResultGetData->nBytesMax )
     {
-        if ( MYODBCC::doStringCopyOut( (SQLWCHAR*)resultGetData.pTarget,
resultGetData.nBytesMax / sizeof(SQLWCHAR), (SQLWCHAR*)stringData.utf16() ) )
+        if ( MYODBCC::doStringCopyOut( (SQLWCHAR*)pResultGetData->pTarget,
pResultGetData->nBytesMax / sizeof(SQLWCHAR), (SQLWCHAR*)stringData.utf16() ) )
         {
-            resultGetData.variantData.clear();
-            if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+            pResultGetData->variantData.clear();
+            if ( pResultGetData->pnBytesRemaining )
*pResultGetData->pnBytesRemaining = 0;
         }
         else
         {
-            if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining =
stringData.length() * sizeof(SQLWCHAR) - resultGetData.nBytesMax;
-            resultGetData.variantData.setValue( stringData.mid( (resultGetData.nBytesMax
- 1) / sizeof(SQLWCHAR) ) );
+            if ( pResultGetData->pnBytesRemaining )
*pResultGetData->pnBytesRemaining = stringData.length() * sizeof(SQLWCHAR) -
pResultGetData->nBytesMax;
+            pResultGetData->variantData.setValue( stringData.mid(
(pResultGetData->nBytesMax - 1) / sizeof(SQLWCHAR) ) );
             MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
         }
     }
     else 
     {
-        if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining =
stringData.length() * sizeof(SQLWCHAR);
+        if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining =
stringData.length() * sizeof(SQLWCHAR);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toShortIntC()
+SQLRETURN MResult::toSShortC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1283,25 +1285,25 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(short int);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(short int);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    if ( !resultGetData.variantData.canConvert<short int>() ) 
+    if ( !pResultGetData->variantData.canConvert<short int>() ) 
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    *((short int *)(resultGetData.pTarget)) = (short
int)resultGetData.variantData.toInt();
+    *((short int *)(pResultGetData->pTarget)) = (short
int)pResultGetData->variantData.toInt();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toUnsignedShortIntC()
+SQLRETURN MResult::toUShortC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1310,25 +1312,25 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(unsigned short int);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(unsigned short int);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    if ( !resultGetData.variantData.canConvert<unsigned short int>() ) 
+    if ( !pResultGetData->variantData.canConvert<unsigned short int>() ) 
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    *((unsigned short int *)resultGetData.pTarget) = (unsigned short
int)resultGetData.variantData.toUInt();
+    *((unsigned short int *)pResultGetData->pTarget) = (unsigned short
int)pResultGetData->variantData.toUInt();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toLongIntC()
+SQLRETURN MResult::toSLongC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1337,25 +1339,25 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(long int);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(long int);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    if ( !resultGetData.variantData.canConvert<long int>() ) 
+    if ( !pResultGetData->variantData.canConvert<long int>() ) 
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    *((long int *)resultGetData.pTarget) = (long
int)resultGetData.variantData.toLongLong();
+    *((long int *)pResultGetData->pTarget) = (long
int)pResultGetData->variantData.toLongLong();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toUnsignedLongIntC()
+SQLRETURN MResult::toULongC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1364,25 +1366,25 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(unsigned long int);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(unsigned long int);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-//    if ( !resultGetData.variantData.canConvert<unsigned long int>() ) 
+//    if ( !pResultGetData->variantData.canConvert<unsigned long int>() ) 
 //        MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    *((unsigned long int *)resultGetData.pTarget) = (unsigned long
int)resultGetData.variantData.toULongLong();
+    *((unsigned long int *)pResultGetData->pTarget) = (unsigned long
int)pResultGetData->variantData.toULongLong();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toLongLongC()
+SQLRETURN MResult::toFloatC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1391,25 +1393,25 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(qlonglong);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(float);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    if ( !resultGetData.variantData.canConvert<qlonglong>() ) 
+    if ( !pResultGetData->variantData.canConvert<float>() ) 
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    *((qlonglong *)resultGetData.pTarget) =
(qulonglong)resultGetData.variantData.toLongLong();
+    *((float *)pResultGetData->pTarget) =
(float)pResultGetData->variantData.toDouble();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toUnsignedLongLongC()
+SQLRETURN MResult::toDoubleC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1418,25 +1420,25 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(qulonglong);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(double);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    if ( !resultGetData.variantData.canConvert<qulonglong>() ) 
+    if ( !pResultGetData->variantData.canConvert<double>() ) 
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    *((qulonglong *)resultGetData.pTarget) =
(qulonglong)resultGetData.variantData.toULongLong();
+    *((double *)pResultGetData->pTarget) =
(double)pResultGetData->variantData.toDouble();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toFloatC()
+SQLRETURN MResult::toBitC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1445,25 +1447,25 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(float);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(unsigned char);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    if ( !resultGetData.variantData.canConvert<float>() ) 
+    if ( !pResultGetData->variantData.canConvert<unsigned char>() ) 
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    *((float *)resultGetData.pTarget) = (float)resultGetData.variantData.toDouble();
+    *((unsigned char *)pResultGetData->pTarget) =
pResultGetData->variantData.toInt();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toDoubleC()
+SQLRETURN MResult::toSTinyIntC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1472,25 +1474,25 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(double);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(char);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    if ( !resultGetData.variantData.canConvert<double>() ) 
+    if ( !pResultGetData->variantData.canConvert<char>() ) 
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    *((double *)resultGetData.pTarget) = (double)resultGetData.variantData.toDouble();
+    *((char *)pResultGetData->pTarget) = pResultGetData->variantData.toInt();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toCharC()
+SQLRETURN MResult::toUTinyIntC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1499,25 +1501,25 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(char);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(unsigned char);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    if ( !resultGetData.variantData.canConvert<char>() ) 
+    if ( !pResultGetData->variantData.canConvert<unsigned char>() ) 
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    *((char *)resultGetData.pTarget) = resultGetData.variantData.toInt();
+    *((unsigned char *)pResultGetData->pTarget) =
pResultGetData->variantData.toInt();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toUnsignedCharC()
+SQLRETURN MResult::toSBigIntC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1526,25 +1528,25 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(unsigned char);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(qint64);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    if ( !resultGetData.variantData.canConvert<unsigned char>() ) 
+    if ( !pResultGetData->variantData.canConvert<qint64>() ) 
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    *((unsigned char *)resultGetData.pTarget) = resultGetData.variantData.toInt();
+    *((qint64 *)pResultGetData->pTarget) =
(qint64)pResultGetData->variantData.toLongLong();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toInt64C()
+SQLRETURN MResult::toUBigIntC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1553,85 +1555,132 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(qint64);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(quint64);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    if ( !resultGetData.variantData.canConvert<qint64>() ) 
+    if ( !pResultGetData->variantData.canConvert<quint64>() ) 
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    *((qint64 *)resultGetData.pTarget) = (qint64)resultGetData.variantData.toLongLong();
+    *((quint64 *)pResultGetData->pTarget) =
(quint64)pResultGetData->variantData.toLongLong();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toUnsignedInt64C()
+SQLRETURN MResult::toBinaryC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
-    /*!
-        \internal ODBC RULE
+    if ( !pResultGetData->variantData.canConvert<QByteArray>() )
+        MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-        The TargetValuePtr argument was a null pointer, and more data was available to
return.
-    */
-    if ( !resultGetData.pTarget )
+    QByteArray bytearray = pResultGetData->variantData.toByteArray();
+
+    if ( pResultGetData->pTarget && pResultGetData->nBytesMax )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(quint64);
+        MYODBCC::doMemCpy( pResultGetData->pTarget, bytearray.constData(), min(
pResultGetData->nBytesMax, bytearray.size() ) );
+        if ( bytearray.size() < pResultGetData->nBytesMax )
+        {
+            pResultGetData->variantData.clear();
+            if ( pResultGetData->pnBytesRemaining )
*pResultGetData->pnBytesRemaining = 0;
+        }
+        else
+        {
+            if ( pResultGetData->pnBytesRemaining )
*pResultGetData->pnBytesRemaining = bytearray.size() - pResultGetData->nBytesMax;
+            pResultGetData->variantData.setValue( bytearray.mid(
pResultGetData->nBytesMax - 1 ) );
+            MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
+        }
+    }
+    else 
+    {
+        if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining =
bytearray.size();
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    if ( !resultGetData.variantData.canConvert<quint64>() ) 
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MResult::toXmlC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+
+    if ( !pResultGetData->variantData.canConvert<QByteArray>() )
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    *((quint64 *)resultGetData.pTarget) =
(quint64)resultGetData.variantData.toLongLong();
+    QByteArray bytearray = pResultGetData->variantData.toByteArray();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    if ( pResultGetData->pTarget && pResultGetData->nBytesMax )
+    {
+        MYODBCC::doMemCpy( pResultGetData->pTarget, bytearray.constData(), min(
pResultGetData->nBytesMax, bytearray.size() ) );
+        if ( bytearray.size() < pResultGetData->nBytesMax )
+        {
+            pResultGetData->variantData.clear();
+            if ( pResultGetData->pnBytesRemaining )
*pResultGetData->pnBytesRemaining = 0;
+        }
+        else
+        {
+            if ( pResultGetData->pnBytesRemaining )
*pResultGetData->pnBytesRemaining = bytearray.size() - pResultGetData->nBytesMax;
+            pResultGetData->variantData.setValue( bytearray.mid(
pResultGetData->nBytesMax - 1 ) );
+            MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
+        }
+    }
+    else 
+    {
+        if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining =
bytearray.size();
+        MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
+    }
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toBinaryC()
+SQLRETURN MResult::toVarBookmarkC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
-    if ( !resultGetData.variantData.canConvert<QByteArray>() )
+    /*!
+        \internal
+        \note
+
+        We may never really use this as bookmark requests will likely get intercepted
higher up
+        the 'food chain'. But doing this allows us to put a bookmark into the result set
and 
+        subsequently in our data conversion 'hub' - the Variant cell value.
+    */
+    if ( !pResultGetData->variantData.canConvert<QByteArray>() )
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    QByteArray bytearray = resultGetData.variantData.toByteArray();
+    QByteArray bytearray = pResultGetData->variantData.toByteArray();
 
-    if ( resultGetData.pTarget && resultGetData.nBytesMax )
+    if ( pResultGetData->pTarget && pResultGetData->nBytesMax )
     {
-        MYODBCC::doMemCpy( resultGetData.pTarget, bytearray.constData(), min(
resultGetData.nBytesMax, bytearray.size() ) );
-        if ( bytearray.size() < resultGetData.nBytesMax )
+        MYODBCC::doMemCpy( pResultGetData->pTarget, bytearray.constData(), min(
pResultGetData->nBytesMax, bytearray.size() ) );
+        if ( bytearray.size() < pResultGetData->nBytesMax )
         {
-            resultGetData.variantData.clear();
-            if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+            pResultGetData->variantData.clear();
+            if ( pResultGetData->pnBytesRemaining )
*pResultGetData->pnBytesRemaining = 0;
         }
         else
         {
-            if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining =
bytearray.size() - resultGetData.nBytesMax;
-            resultGetData.variantData.setValue( bytearray.mid( resultGetData.nBytesMax -
1 ) );
+            if ( pResultGetData->pnBytesRemaining )
*pResultGetData->pnBytesRemaining = bytearray.size() - pResultGetData->nBytesMax;
+            pResultGetData->variantData.setValue( bytearray.mid(
pResultGetData->nBytesMax - 1 ) );
             MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
         }
     }
     else 
     {
-        if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining =
bytearray.size();
+        if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining =
bytearray.size();
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toDateC()
+SQLRETURN MResult::toTypeDateC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1640,30 +1689,30 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(SQL_DATE_STRUCT);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(SQL_DATE_STRUCT);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    SQL_DATE_STRUCT *pDateTarget = (SQL_DATE_STRUCT *)resultGetData.pTarget;
+    SQL_DATE_STRUCT *pDateTarget = (SQL_DATE_STRUCT *)pResultGetData->pTarget;
 
-    if ( !resultGetData.variantData.canConvert<QDate>() ) 
+    if ( !pResultGetData->variantData.canConvert<QDate>() ) 
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    QDate d             = resultGetData.variantData.toDate();
+    QDate d             = pResultGetData->variantData.toDate();
     pDateTarget->day    = d.day();
     pDateTarget->month  = d.month();
     pDateTarget->year   = d.year();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toTimeC()
+SQLRETURN MResult::toTypeTimeC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1672,30 +1721,30 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(SQL_TIME_STRUCT);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(SQL_TIME_STRUCT);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    SQL_TIME_STRUCT *pTimeTarget = (SQL_TIME_STRUCT *)resultGetData.pTarget;
+    SQL_TIME_STRUCT *pTimeTarget = (SQL_TIME_STRUCT *)pResultGetData->pTarget;
 
-    if ( !resultGetData.variantData.canConvert<QTime>() ) 
+    if ( !pResultGetData->variantData.canConvert<QTime>() ) 
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    QTime t             = resultGetData.variantData.toTime();
+    QTime t             = pResultGetData->variantData.toTime();
     pTimeTarget->hour   = t.hour();
     pTimeTarget->minute = t.minute();
     pTimeTarget->second = t.second();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
-SQLRETURN MResult::toTimeStampC()
+SQLRETURN MResult::toTypeTimeStampC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
@@ -1704,19 +1753,19 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(SQL_TIMESTAMP_STRUCT);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(SQL_TIMESTAMP_STRUCT);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    SQL_TIMESTAMP_STRUCT *pTimeStampTarget = (SQL_TIMESTAMP_STRUCT
*)resultGetData.pTarget;
+    SQL_TIMESTAMP_STRUCT *pTimeStampTarget = (SQL_TIMESTAMP_STRUCT
*)pResultGetData->pTarget;
 
-    if ( !resultGetData.variantData.canConvert<QDateTime>() ) 
+    if ( !pResultGetData->variantData.canConvert<QDateTime>() ) 
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
 
-    QDateTime t = resultGetData.variantData.toDateTime();
+    QDateTime t = pResultGetData->variantData.toDateTime();
     pTimeStampTarget->day        = t.date().day();
     pTimeStampTarget->fraction   = t.time().msec(); /*! \todo fraction is not same as
msec - look into it */
     pTimeStampTarget->hour       = t.time().hour();
@@ -1725,8 +1774,8 @@
     pTimeStampTarget->second     = t.time().second();
     pTimeStampTarget->year       = t.date().year();
 
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
@@ -1747,14 +1796,14 @@
 
     \sa getData()
 */
-SQLRETURN MResult::toNumericC()
+SQLRETURN MResult::toNumericC( MResultGetData *pResultGetData )
 {
     MYODBCDbgEnter();
 
     /* our high precision stuff (DECIMAL) is stored as a string and all other numerics
can be turned into a string 
        so lets use a string as our starting point - in this way we hope to catch &
report any possible loss of 
        precision/scale :) */
-    if ( !resultGetData.variantData.canConvert<QString>() )
+    if ( !pResultGetData->variantData.canConvert<QString>() )
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006, 0,
tr("Variant (data conversion hub) could not convert to a string.") ) );
 
     /*!
@@ -1762,14 +1811,14 @@
 
         The TargetValuePtr argument was a null pointer, and more data was available to
return.
     */
-    if ( !resultGetData.pTarget )
+    if ( !pResultGetData->pTarget )
     {
-        if ( resultGetData.pnBytesRemaining ) 
-            *resultGetData.pnBytesRemaining = sizeof(SQL_NUMERIC_STRUCT);
+        if ( pResultGetData->pnBytesRemaining ) 
+            *pResultGetData->pnBytesRemaining = sizeof(SQL_NUMERIC_STRUCT);
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
     }
 
-    QString stringData = resultGetData.variantData.toString().trimmed();
+    QString stringData = pResultGetData->variantData.toString().trimmed();
 
     /*!
         \internal ODBC RULE
@@ -1784,15 +1833,15 @@
 
         \sa SQL_ARD_TYPE
     */
-    SQL_NUMERIC_STRUCT *pNumericTarget = (SQL_NUMERIC_STRUCT *)resultGetData.pTarget;
+    SQL_NUMERIC_STRUCT *pNumericTarget = (SQL_NUMERIC_STRUCT
*)pResultGetData->pTarget;
 
     pNumericTarget->sign = 1;
 
     /* is default being overidden with ARD? */
-    if ( resultGetData.pDescriptorRecordARD )
+    if ( pResultGetData->pDescriptorRecordARD )
     {
-        pNumericTarget->precision =
resultGetData.pDescriptorRecordARD->getPrecision();
-        pNumericTarget->scale     = resultGetData.pDescriptorRecordARD->getScale();
+        pNumericTarget->precision =
pResultGetData->pDescriptorRecordARD->getPrecision();
+        pNumericTarget->scale     =
pResultGetData->pDescriptorRecordARD->getScale();
     }
     else
     {
@@ -1867,8 +1916,8 @@
     /*! \todo pack into 16 byte buffer */
 
     /* set length */
-    resultGetData.variantData.clear();
-    if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
+    pResultGetData->variantData.clear();
+    if ( pResultGetData->pnBytesRemaining ) *pResultGetData->pnBytesRemaining = 0;
 
     if ( bFractionalTruncation )
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01S07 ) );
@@ -1876,6 +1925,90 @@
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
+SQLRETURN MResult::toGuidC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MResult::toIntervalMonthC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MResult::toIntervalYearC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MResult::toIntervalYearToMonthC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MResult::toIntervalDayC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MResult::toIntervalHourC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MResult::toIntervalMinuteC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MResult::toIntervalSecondC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MResult::toIntervalDayToHourC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MResult::toIntervalDayToMinuteC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MResult::toIntervalDayToSecondC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MResult::toIntervalHourToMinuteC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MResult::toIntervalHourToSecondC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MResult::toIntervalMinuteToSecondC( MResultGetData *pResultGetData )
+{
+    MYODBCDbgEnter();
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
 /*! 
     \brief  Appends an IRD record describing the given field.
 

Modified: trunk/MYSQLPlus/MYSQLPlusLib/MResult.h
===================================================================
--- trunk/MYSQLPlus/MYSQLPlusLib/MResult.h	2006-06-06 19:27:05 UTC (rev 320)
+++ trunk/MYSQLPlus/MYSQLPlusLib/MResult.h	2006-06-06 23:00:15 UTC (rev 321)
@@ -155,39 +155,79 @@
     SQLRETURN       setStatementType( STATEMENT_TYPE nStatementType );
     SQLRETURN       setStatementType( const QString &stringStatement );
 
-    /* support for getData: these enforce ODBC rules generalized based upon SQL type (ie
see "SQL to C: Character" in odbc spec) */
-    SQLRETURN       fromCharacterSQL();
-    SQLRETURN       fromNumericSQL();
-    SQLRETURN       fromBitSQL();
-    SQLRETURN       fromBinarySQL();
-    SQLRETURN       fromDateSQL();
-    SQLRETURN       fromGuidSQL();
-    SQLRETURN       fromTimeSQL();
-    SQLRETURN       fromTimeStampSQL();
-    SQLRETURN       fromIntervalYearMonthSQL();
-    SQLRETURN       fromIntervalDayTimeSQL();
+    /*!
+        \name   from*SQL
 
-    /* support for getData: these do data conversion going out (to app) */
-    SQLRETURN       toCharStringC();
-    SQLRETURN       toWideCharStringC();
-    SQLRETURN       toShortIntC();
-    SQLRETURN       toUnsignedShortIntC();
-    SQLRETURN       toLongIntC();
-    SQLRETURN       toUnsignedLongIntC();
-    SQLRETURN       toLongLongC();
-    SQLRETURN       toUnsignedLongLongC();
-    SQLRETURN       toFloatC();
-    SQLRETURN       toDoubleC();
-    SQLRETURN       toCharC();
-    SQLRETURN       toUnsignedCharC();
-    SQLRETURN       toInt64C();
-    SQLRETURN       toUnsignedInt64C();
-    SQLRETURN       toBinaryC();
-    SQLRETURN       toDateC();
-    SQLRETURN       toTimeC();
-    SQLRETURN       toTimeStampC();
-    SQLRETURN       toNumericC();
+        These are used to convert/copy data into an initialized MResultGetData. These
methods also enforce ODBC rules 
+    generalized based upon SQL type - hence fewer methods than SQL types.
 
+        \sa 
+
+        "Converting Data from SQL to C Data Types"
http://msdn.microsoft.com/library/en-us/odbc/htm/odbcconverting_data_from_sql_to_c_data_types.asp
+    */
+    /*@{*/
+    SQLRETURN       fromCharacterSQL( MResultGetData  *pResultGetData );
+    SQLRETURN       fromNumericSQL( MResultGetData  *pResultGetData );
+    SQLRETURN       fromBitSQL( MResultGetData  *pResultGetData );
+    SQLRETURN       fromBinarySQL( MResultGetData  *pResultGetData );
+    SQLRETURN       fromDateSQL( MResultGetData  *pResultGetData );
+    SQLRETURN       fromGuidSQL( MResultGetData  *pResultGetData );
+    SQLRETURN       fromTimeSQL( MResultGetData  *pResultGetData );
+    SQLRETURN       fromTimeStampSQL( MResultGetData  *pResultGetData );
+    SQLRETURN       fromIntervalYearMonthSQL( MResultGetData  *pResultGetData );
+    SQLRETURN       fromIntervalDayTimeSQL( MResultGetData  *pResultGetData );
+    /*@}*/
+
+    /*!
+        \name   to*C
+
+        These correspond to the "C type identifier" column in the "C Data Types" table.
These are 
+        used to support from*SQL methods.
+
+        We are using a 'hub' and 'spoke' data conversion method. The Variant cell value
is our data 
+        conversion 'hub' - these are our outgoing 'spokes'.
+
+        \sa
+        
+        "C Data Types"
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcc_data_types.asp
+    */
+    /*@{*/
+    SQLRETURN       toCharC( MResultGetData  *pResultGetData );                        
/*!< SQL_C_CHAR 	        SQLCHAR * 	            unsigned char *     */
+    SQLRETURN       toWCharC( MResultGetData  *pResultGetData );                       
/*!< SQL_C_WCHAR 	        SQLWCHAR * 	            wchar_t *           */
+    SQLRETURN       toSShortC( MResultGetData  *pResultGetData );                      
/*!< SQL_C_SSHORT 	        SQLSMALLINT 	        short int           */
+    SQLRETURN       toUShortC( MResultGetData  *pResultGetData );                      
/*!< SQL_C_USHORT 	        SQLUSMALLINT 	        unsigned short int  */
+    SQLRETURN       toSLongC( MResultGetData  *pResultGetData );                       
/*!< SQL_C_SLONG 	        SQLINTEGER 	            long int            */
+    SQLRETURN       toULongC( MResultGetData  *pResultGetData );                       
/*!< SQL_C_ULONG 	        SQLUINTEGER	            unsigned long int   */
+    SQLRETURN       toFloatC( MResultGetData  *pResultGetData );                       
/*!< SQL_C_FLOAT 	        SQLREAL 	            float               */
+    SQLRETURN       toDoubleC( MResultGetData  *pResultGetData );                      
/*!< SQL_C_DOUBLE 	        SQLDOUBLE,SQLFLOAT      double              */
+    SQLRETURN       toBitC( MResultGetData  *pResultGetData );                         
/*!< SQL_C_BIT 	            SQLCHAR 	            unsigned char       */
+    SQLRETURN       toSTinyIntC( MResultGetData  *pResultGetData );                    
/*!< SQL_C_STINYINT	        SQLSCHAR 	            signed char         */
+    SQLRETURN       toUTinyIntC( MResultGetData  *pResultGetData );                    
/*!< SQL_C_UTINYINT	        SQLCHAR 	            unsigned char       */
+    SQLRETURN       toSBigIntC( MResultGetData  *pResultGetData );                     
/*!< SQL_C_SBIGINT 	        SQLBIGINT 	            _int64              */
+    SQLRETURN       toUBigIntC( MResultGetData  *pResultGetData );                     
/*!< SQL_C_UBIGINT 	        SQLUBIGINT 	            unsigned _int64     */
+    SQLRETURN       toBinaryC( MResultGetData  *pResultGetData );                      
/*!< SQL_C_BINARY 	        SQLCHAR * 	            unsigned char *     */
+    SQLRETURN       toXmlC( MResultGetData  *pResultGetData );                         
/*!< SQL_C_XML 	            SQLCHAR * 	            unsigned char *     */
+    SQLRETURN       toVarBookmarkC( MResultGetData  *pResultGetData );                 
/*!< SQL_C_VARBOOKMARK 	    SQLCHAR * 	            unsigned char *     */
+    SQLRETURN       toTypeDateC( MResultGetData  *pResultGetData );                    
/*!< SQL_C_TYPE_DATE 	    SQL_DATE_STRUCT         DATE_STRUCT         */
+    SQLRETURN       toTypeTimeC( MResultGetData  *pResultGetData );                    
/*!< SQL_C_TYPE_TIME 	    SQL_TIME_STRUCT         TIME_STRUCT         */
+    SQLRETURN       toTypeTimeStampC( MResultGetData  *pResultGetData );               
/*!< SQL_C_TYPE_TIMESTAMP 	SQL_TIMESTAMP_STRUCT    TIMESTAMP_STRUCT    */
+    SQLRETURN       toNumericC( MResultGetData  *pResultGetData );                     
/*!< SQL_C_NUMERIC 	        SQL_NUMERIC_STRUCT      SQL_NUMERIC_STRUCT  */
+    SQLRETURN       toGuidC( MResultGetData  *pResultGetData );                        
/*!< SQL_C_GUID 	        SQLGUID                 SQLGUID             */
+    SQLRETURN       toIntervalMonthC( MResultGetData  *pResultGetData );               
/*!< interval type          SQL_INTERVAL_STRUCT     SQL_INTERVAL_STRUCT */
+    SQLRETURN       toIntervalYearC( MResultGetData  *pResultGetData );
+    SQLRETURN       toIntervalYearToMonthC( MResultGetData  *pResultGetData );
+    SQLRETURN       toIntervalDayC( MResultGetData  *pResultGetData );
+    SQLRETURN       toIntervalHourC( MResultGetData  *pResultGetData );
+    SQLRETURN       toIntervalMinuteC( MResultGetData  *pResultGetData );
+    SQLRETURN       toIntervalSecondC( MResultGetData  *pResultGetData );
+    SQLRETURN       toIntervalDayToHourC( MResultGetData  *pResultGetData );
+    SQLRETURN       toIntervalDayToMinuteC( MResultGetData  *pResultGetData );
+    SQLRETURN       toIntervalDayToSecondC( MResultGetData  *pResultGetData );
+    SQLRETURN       toIntervalHourToMinuteC( MResultGetData  *pResultGetData );
+    SQLRETURN       toIntervalHourToSecondC( MResultGetData  *pResultGetData );
+    SQLRETURN       toIntervalMinuteToSecondC( MResultGetData  *pResultGetData );
+    /*@}*/
+
     /* doers */
     virtual SQLRETURN doStateRollBack( STATE nState ) = 0;
     SQLRETURN doLoadMetaDataField( unsigned int nField, MYSQL_FIELD *pField,
MDescriptorIRD *pDescriptor );
@@ -196,7 +236,7 @@
     STATE           nState;         /*!< our state                                    
                                                                 */
     BOOLEAN         bBuffered;      /*!< true causes entire resultset to get pulled to
client at execute (enabling other features) (default=true)       */
     qulonglong      nRowsAffected;  /*!< number of rows affected by a non-SELECT
statement (catalog and SHOW statements count as SELECT in this case)   */
-    STATEMENT_TYPE  nStatementType;
+    STATEMENT_TYPE  nStatementType; /*!< provides a hint of what the sql or command
was which was sent to doPrepare()                                   */
 };
 
 #endif

Thread
Connector/ODBC 5 commit: r321 - trunk/MYSQLPlus/MYSQLPlusLibpharvey7 Jun