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/MYSQLPlusLib | pharvey | 7 Jun |