Added:
examples/
examples/HelloWorld/
examples/HelloWorld/HelloWorld.c
Modified:
MYSQLPlus/MYSQLPlusLib/MDescriptorRecord.cpp
MYSQLPlus/MYSQLPlusLib/MDiagnostic.cpp
MYSQLPlus/MYSQLPlusLib/MDiagnosticRecord.cpp
MYSQLPlus/MYSQLPlusLib/MResult.cpp
MYSQLPlus/MYSQLPlusLib/MResultStmt.cpp
MYSQLPlus/MYSQLPlusLib/MStatement.cpp
Log:
Modified: MYSQLPlus/MYSQLPlusLib/MDescriptorRecord.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MDescriptorRecord.cpp 2006-05-19 17:41:04 UTC (rev 261)
+++ MYSQLPlus/MYSQLPlusLib/MDescriptorRecord.cpp 2006-05-23 04:32:02 UTC (rev 262)
@@ -947,13 +947,13 @@
case SQL_DESC_BASE_COLUMN_NAME:
*pnStringLengthPtr = getBaseColumnName().length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), getBaseColumnName().utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)getBaseColumnName().utf16() ) )
MYODBCDbgReturn( getDescriptor()->getDiagnostic()->doAppend(
MDiagnostic::DIA_01004 ) );
break;
case SQL_DESC_BASE_TABLE_NAME:
*pnStringLengthPtr = getBaseTableName().length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), getBaseTableName().utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)getBaseTableName().utf16() ) )
MYODBCDbgReturn( getDescriptor()->getDiagnostic()->doAppend(
MDiagnostic::DIA_01004 ) );
break;
@@ -963,7 +963,7 @@
case SQL_DESC_CATALOG_NAME:
*pnStringLengthPtr = getCatalogName().length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), getCatalogName().utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)getCatalogName().utf16() ) )
MYODBCDbgReturn( getDescriptor()->getDiagnostic()->doAppend(
MDiagnostic::DIA_01004 ) );
break;
@@ -1005,7 +1005,7 @@
case SQL_DESC_LABEL:
*pnStringLengthPtr = getLabel().length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), getLabel().utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)getLabel().utf16() ) )
MYODBCDbgReturn( getDescriptor()->getDiagnostic()->doAppend(
MDiagnostic::DIA_01004 ) );
break;
@@ -1015,25 +1015,25 @@
case SQL_DESC_LITERAL_PREFIX:
*pnStringLengthPtr = getLiteralPrefix().length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), getLiteralPrefix().utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)getLiteralPrefix().utf16() ) )
MYODBCDbgReturn( getDescriptor()->getDiagnostic()->doAppend(
MDiagnostic::DIA_01004 ) );
break;
case SQL_DESC_LITERAL_SUFFIX:
*pnStringLengthPtr = getLiteralSuffix().length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), getLiteralSuffix().utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)getLiteralSuffix().utf16() ) )
MYODBCDbgReturn( getDescriptor()->getDiagnostic()->doAppend(
MDiagnostic::DIA_01004 ) );
break;
case SQL_DESC_LOCAL_TYPE_NAME:
*pnStringLengthPtr = getLocalTypeName().length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), getLocalTypeName().utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)getLocalTypeName().utf16() ) )
MYODBCDbgReturn( getDescriptor()->getDiagnostic()->doAppend(
MDiagnostic::DIA_01004 ) );
break;
case SQL_DESC_NAME:
*pnStringLengthPtr = getName().length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), getName().utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)getName().utf16() ) )
MYODBCDbgReturn( getDescriptor()->getDiagnostic()->doAppend(
MDiagnostic::DIA_01004 ) );
break;
@@ -1067,7 +1067,7 @@
case SQL_DESC_SCHEMA_NAME:
*pnStringLengthPtr = getSchemaName().length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), getSchemaName().utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)getSchemaName().utf16() ) )
MYODBCDbgReturn( getDescriptor()->getDiagnostic()->doAppend(
MDiagnostic::DIA_01004 ) );
break;
@@ -1077,7 +1077,7 @@
case SQL_DESC_TABLE_NAME:
*pnStringLengthPtr = getTableName().length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), getTableName().utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)getTableName().utf16() ) )
MYODBCDbgReturn( getDescriptor()->getDiagnostic()->doAppend(
MDiagnostic::DIA_01004 ) );
break;
@@ -1087,7 +1087,7 @@
case SQL_DESC_TYPE_NAME:
*pnStringLengthPtr = getTypeName().length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), getTypeName().utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pValuePtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)getTypeName().utf16() ) )
MYODBCDbgReturn( getDescriptor()->getDiagnostic()->doAppend(
MDiagnostic::DIA_01004 ) );
break;
Modified: MYSQLPlus/MYSQLPlusLib/MDiagnostic.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MDiagnostic.cpp 2006-05-19 17:41:04 UTC (rev 261)
+++ MYSQLPlus/MYSQLPlusLib/MDiagnostic.cpp 2006-05-23 04:32:02 UTC (rev 262)
@@ -304,7 +304,7 @@
MYODBCDbgReturn( SQL_ERROR );
*pnStringLengthPtr = stringDynamicFunction.length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pDiagInfoPtr, nBufferLength /
sizeof(SQLWCHAR), stringDynamicFunction.utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pDiagInfoPtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)stringDynamicFunction.utf16() ) )
MYODBCDbgReturn( SQL_SUCCESS_WITH_INFO );
}
break;
Modified: MYSQLPlus/MYSQLPlusLib/MDiagnosticRecord.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MDiagnosticRecord.cpp 2006-05-19 17:41:04 UTC (rev 261)
+++ MYSQLPlus/MYSQLPlusLib/MDiagnosticRecord.cpp 2006-05-23 04:32:02 UTC (rev 262)
@@ -148,7 +148,7 @@
MYODBCDbgReturn( SQL_ERROR );
*pnStringLengthPtr = stringClassOrigin.length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pDiagInfoPtr, nBufferLength /
sizeof(SQLWCHAR), stringClassOrigin.utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pDiagInfoPtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)stringClassOrigin.utf16() ) )
MYODBCDbgReturn( SQL_SUCCESS_WITH_INFO );
}
break;
@@ -164,7 +164,7 @@
MYODBCDbgReturn( SQL_ERROR );
*pnStringLengthPtr = stringConnectionName.length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pDiagInfoPtr, nBufferLength /
sizeof(SQLWCHAR), stringConnectionName.utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pDiagInfoPtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)stringConnectionName.utf16() ) )
MYODBCDbgReturn( SQL_SUCCESS_WITH_INFO );
}
break;
@@ -176,7 +176,7 @@
MYODBCDbgReturn( SQL_ERROR );
*pnStringLengthPtr = stringMessageText.length() * sizeof(SQLWCHAR);
- if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pDiagInfoPtr, nBufferLength /
sizeof(SQLWCHAR), stringMessageText.utf16() ) )
+ if ( !MYODBCC::doStringCopyOut( (SQLWCHAR*)pDiagInfoPtr, nBufferLength /
sizeof(SQLWCHAR), (SQLWCHAR*)stringMessageText.utf16() ) )
MYODBCDbgReturn( SQL_SUCCESS_WITH_INFO );
}
break;
Modified: MYSQLPlus/MYSQLPlusLib/MResult.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MResult.cpp 2006-05-19 17:41:04 UTC (rev 261)
+++ MYSQLPlus/MYSQLPlusLib/MResult.cpp 2006-05-23 04:32:02 UTC (rev 262)
@@ -633,7 +633,7 @@
The following table shows the ODBC C data types to which character SQL data may
be converted.
*/
- switch ( pResultDataTarget->nTargetType )
+ switch ( resultGetData.nTargetType )
{
case SQL_C_CHAR:
MYODBCDbgReturn( toCharStringC() );
@@ -690,7 +690,7 @@
The following table shows the ODBC C data types to which numeric SQL data may be
converted.
*/
- switch ( pResultDataTarget->nTargetType )
+ switch ( resultGetData.nTargetType )
{
case SQL_C_CHAR:
MYODBCDbgReturn( toCharStringC() );
@@ -743,7 +743,7 @@
The following table shows the ODBC C data types to which bit SQL data may be
converted.
*/
- switch ( pResultDataTarget->nTargetType )
+ switch ( resultGetData.nTargetType )
{
case SQL_C_CHAR:
MYODBCDbgReturn( toCharStringC() );
@@ -784,7 +784,7 @@
The following table shows the ODBC C data types to which binary SQL data may be
converted.
*/
- switch ( pResultDataTarget->nTargetType )
+ switch ( resultGetData.nTargetType )
{
case SQL_C_CHAR:
MYODBCDbgReturn( toCharStringC() );
@@ -811,7 +811,7 @@
The following table shows the ODBC C data types to which date SQL data may be
converted.
*/
- switch ( pResultDataTarget->nTargetType )
+ switch ( resultGetData.nTargetType )
{
case SQL_C_CHAR:
MYODBCDbgReturn( toCharStringC() );
@@ -839,7 +839,7 @@
The following table shows the ODBC C data types to which GUID SQL data may be
converted.
*/
- switch ( pResultDataTarget->nTargetType )
+ switch ( resultGetData.nTargetType )
{
case SQL_C_CHAR:
MYODBCDbgReturn( toCharStringC() );
@@ -866,7 +866,7 @@
The following table shows the ODBC C data types to which time SQL data may be
converted.
*/
- switch ( pResultDataTarget->nTargetType )
+ switch ( resultGetData.nTargetType )
{
case SQL_C_CHAR:
MYODBCDbgReturn( toCharStringC() );
@@ -894,7 +894,7 @@
The following table shows the ODBC C data types to which timestamp SQL data may
be converted.
*/
- switch ( pResultDataTarget->nTargetType )
+ switch ( resultGetData.nTargetType )
{
case SQL_C_CHAR:
MYODBCDbgReturn( toCharStringC() );
@@ -905,7 +905,7 @@
case SQL_C_BINARY:
case SQL_C_TYPE_DATE:
case SQL_C_TYPE_TIME:
- case SQL_C_TYPETIMESTAMP:
+ case SQL_C_TIMESTAMP:
break;
default:
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006 ) );
@@ -923,7 +923,7 @@
The following table shows the ODBC C data types to which year-month interval SQL
data may be converted.
*/
- switch ( pResultDataTarget->nTargetType )
+ switch ( resultGetData.nTargetType )
{
case SQL_C_CHAR:
MYODBCDbgReturn( toCharStringC() );
@@ -941,7 +941,8 @@
case SQL_C_SLONG:
case SQL_C_ULONG:
case SQL_C_NUMERIC:
- case SQL_C_BIGINT:
+ case SQL_C_SBIGINT:
+ case SQL_C_UBIGINT:
case SQL_C_BINARY:
break;
default:
@@ -960,7 +961,7 @@
The following table shows the ODBC C data types to which day-time interval SQL
data may be converted.
*/
- switch ( pResultDataTarget->nTargetType )
+ switch ( resultGetData.nTargetType )
{
case SQL_C_CHAR:
MYODBCDbgReturn( toCharStringC() );
@@ -1035,7 +1036,7 @@
else
{
if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining =
stringData.length() - resultGetData.nBytesMax;
- variantData.setValue( stringData.mid( resultGetData.nBytesMax - 1 ) );
+ resultGetData.variantData.setValue( stringData.mid( resultGetData.nBytesMax -
1 ) );
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_01004 ) );
}
}
@@ -1077,7 +1078,7 @@
QString stringData = resultGetData.variantData.toString();
if ( resultGetData.pTarget && resultGetData.nBytesMax )
{
- if ( MYODBCC::doStringCopyOut( (SQLWCHAR*)resultGetData.pTarget,
resultGetData.nBytesMax / sizeof(SQLWCHAR), stringData.utf16() ) )
+ if ( MYODBCC::doStringCopyOut( (SQLWCHAR*)resultGetData.pTarget,
resultGetData.nBytesMax / sizeof(SQLWCHAR), (SQLWCHAR*)stringData.utf16() ) )
{
resultGetData.variantData.clear();
if ( resultGetData.pnBytesRemaining ) *resultGetData.pnBytesRemaining = 0;
@@ -1491,13 +1492,8 @@
}
/* get int ver of each part */
- bool bOk = true;
- int nPrecision = stringPrecision.toInt( &bOk );
- if ( !bOk )
- MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006, 0,
tr("Failed to convert precision part.") ) );
- int nScale = stringScale.toInt( &bOk );
- if ( !bOk )
- MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07006, 0,
tr("Failed to convert scale part.") ) );
+ int nPrecision = stringPrecision.toInt();
+ int nScale = stringScale.toInt();
/*!
\internal ODBC RULE
Modified: MYSQLPlus/MYSQLPlusLib/MResultStmt.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MResultStmt.cpp 2006-05-19 17:41:04 UTC (rev 261)
+++ MYSQLPlus/MYSQLPlusLib/MResultStmt.cpp 2006-05-23 04:32:02 UTC (rev 262)
@@ -1112,7 +1112,7 @@
}
/*
- Load any bound columns from SQLBindCol/ARD. Use getData to lean on Qt/QVariant
here.
+ Load any bound columns from SQLBindCol/ARD. Use getData to reduce redundant code.
*/
{
MDescriptor *pDescriptor = getAppRowDesc();
@@ -1124,9 +1124,12 @@
if ( pDescriptorRecord->getDataPtr() )
{
-++++++++++
- // virtual SQLRETURN getData( SQLUSMALLINT nColumn, SQLSMALLINT
nTargetType, SQLPOINTER pTargetValue, SQLINTEGER nBufferLength, SQLINTEGER *pnLength,
SQLINTEGER *pnIndicator );
- SQLRETURN nReturn = getData( nColumn, pDescriptor->get );
+ SQLRETURN nReturn = MResult::getData( nColumn,
+
pDescriptorRecord->getConciseType(),
+ pDescriptorRecord->getDataPtr(),
+ pDescriptorRecord->getLength(),
+
pDescriptorRecord->getOctetLengthPtr(),
+
pDescriptorRecord->getIndicatorPtr() );
if ( nReturn != SQL_SUCCESS )
MYODBCDbgReturn( nReturn );
}
Modified: MYSQLPlus/MYSQLPlusLib/MStatement.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MStatement.cpp 2006-05-19 17:41:04 UTC (rev 261)
+++ MYSQLPlus/MYSQLPlusLib/MStatement.cpp 2006-05-23 04:32:02 UTC (rev 262)
@@ -1622,7 +1622,36 @@
*/
pDiagnostic->doClear();
- MYODBCDbgReturn( SQL_ERROR );
+ /*!
+ \internal ODBC RULE (DM)
+
+ The specified StatementHandle was not in an executed state.
+ The function was called without first calling SQLExecDirect,
+ SQLExecute or a catalog function.
+ */
+ if ( getState() < STATE_S4 )
+ MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_HY010 ) );
+
+ /*!
+ \internal ODBC RULE (DM)
+
+ An asynchronously executing function (not this one) was called
+ for the StatementHandle and was still executing when this function
+ was called.
+ */
+ if ( isAsyncInProgress() )
+ MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_HY010 ) );
+
+ /*!
+ \internal ODBC RULE (DM)
+
+ The StatementHandle was in an executed state, but no result
+ set was associated with the StatementHandle.
+ */
+ if ( getState() == STATE_S4 || !pResult )
+ MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_24000 ) );
+
+ MYODBCDbgReturn( pResult->doNext() );
}
SQLRETURN MStatement::doFetchScroll( SQLSMALLINT nFetchOrientation, SQLINTEGER
nFetchOffset )
Added: examples/HelloWorld/HelloWorld.c
===================================================================
--- examples/HelloWorld/HelloWorld.c 2006-05-19 17:41:04 UTC (rev 261)
+++ examples/HelloWorld/HelloWorld.c 2006-05-23 04:32:02 UTC (rev 262)
@@ -0,0 +1,41 @@
+#include <sql.h>
+#include <sqlext.h>
+
+#define LAST_NAME_MAX 255
+
+/* ODBC hello world */
+int main( int argc, char *argv[] )
+{
+
+ SQLRETURN nReturn;
+ SQLCHAR * pszDSN = argv[1];
+ SQLCHAR * pszUID = argv[2];
+ SQLCHAR * pszPWD = argv[3];
+ SQLCHAR szLastName[LAST_NAME_MAX];
+ SQLINTEGER nLastNameInd;
+
+ /* init */
+ nReturn = SQLAllocHandle( SQL_HANDLE_ENV, NULL, &hEnv );
+ nReturn = SQLSetEnvAttr( hEnv, SQL_ATTR_ODBC_VERSION, SQL_OV_ODBC3, 0 );
+ nReturn = SQLAllocHandle( SQL_HANDLE_DBC, hEnv, &hDbc );
+ nReturn = SQLConnect( hDbc, pszDSN, SQL_NTS, pszUID, SQL_NTS, pszPWD, SQL_NTS );
+ nReturn = SQLAllocHandle( SQL_HANDLE_STMT, hDbc, hStmt );
+
+ /* query */
+ nReturn = SQLExecDirect( hStmt, pszSQL, "SELECT vcLastName FROM tbAddresses", SQL_NTS
);
+ while ( 1 )
+ {
+ nReturn = SQLFetch( hStmt );
+ if ( !SQL_SUCCEEDED( nReturn ) )
+ break;
+ nReturn = SQLGetData( hStmt, 1, SQL_C_CHAR, pszLastName, LAST_NAME_MAX,
&nLastNameInd );
+ }
+
+ /* fini */
+ nReturn = SQLFreeHandle( SQL_HANDLE_STMT, hStmt );
+ nReturn = SQLFreeHandle( SQL_HANDLE_DBC, hDbc );
+ nReturn = SQLFreeHandle( SQL_HANDLE_ENV, hEnv );
+
+ return( 0 );
+}
+
| Thread |
|---|
| • Connector/ODBC 5 commit: r262 - / MYSQLPlus/MYSQLPlusLib examples examples/HelloWorld | pharvey | 23 May |