Modified:
trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorAPD.cpp
trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorARD.cpp
trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorIPD.cpp
trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorIRD.cpp
trunk/MYSQLPlus/MYSQLPlusTest/MYSQLPlusTest.cpp
Log:
Corrected;
- IPD record count now auto expands to support SQLBindParameter
- some 1-based vs 0-based issues
Modified: trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorAPD.cpp
===================================================================
--- trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorAPD.cpp 2006-06-16 06:00:42 UTC (rev 342)
+++ trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorAPD.cpp 2006-06-16 06:23:12 UTC (rev 343)
@@ -103,7 +103,7 @@
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07009 ) );
/* auto expand record list... */
- if ( nRecNumber >= getCount() )
+ if ( nRecNumber > getCount() )
setCount( nRecNumber );
/* handle as record field */
Modified: trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorARD.cpp
===================================================================
--- trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorARD.cpp 2006-06-16 06:00:42 UTC (rev 342)
+++ trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorARD.cpp 2006-06-16 06:23:12 UTC (rev 343)
@@ -123,7 +123,7 @@
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07009 ) );
/* auto expand record list... */
- if ( nRecNumber >= getCount() )
+ if ( nRecNumber > getCount() )
setCount( nRecNumber );
/* handle as record field */
Modified: trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorIPD.cpp
===================================================================
--- trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorIPD.cpp 2006-06-16 06:00:42 UTC (rev 342)
+++ trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorIPD.cpp 2006-06-16 06:23:12 UTC (rev 343)
@@ -112,10 +112,14 @@
if ( nRecNumber == 0 )
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07009 ) );
- /* record field needs a valid record */
- if ( nRecNumber < 0 || nRecNumber >= getCount() )
+ /* record number must be > 0 */
+ if ( nRecNumber < 0 )
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07009 ) );
+ /* auto expand record list (ie to support doBindParameter()... */
+ if ( nRecNumber > getCount() )
+ setCount( nRecNumber );
+
/* handle as record field */
MYODBCDbgReturn( ((MDescriptorRecord*)(children().at( nRecNumber
)))->setDescField( nFieldIdentifier, pValuePtr, nBufferLength ) );
}
Modified: trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorIRD.cpp
===================================================================
--- trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorIRD.cpp 2006-06-16 06:00:42 UTC (rev 342)
+++ trunk/MYSQLPlus/MYSQLPlusLib/MDescriptorIRD.cpp 2006-06-16 06:23:12 UTC (rev 343)
@@ -76,7 +76,7 @@
} /* switch (for header fields) */
/* record field needs a valid record */
- if ( nRecNumber < 0 || nRecNumber >= getCount() )
+ if ( nRecNumber < 0 || nRecNumber > getCount() )
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07009 ) );
/* handle as record field */
Modified: trunk/MYSQLPlus/MYSQLPlusTest/MYSQLPlusTest.cpp
===================================================================
--- trunk/MYSQLPlus/MYSQLPlusTest/MYSQLPlusTest.cpp 2006-06-16 06:00:42 UTC (rev 342)
+++ trunk/MYSQLPlus/MYSQLPlusTest/MYSQLPlusTest.cpp 2006-06-16 06:23:12 UTC (rev 343)
@@ -189,10 +189,8 @@
SQLWCHAR szNameWide[100];
SQLINTEGER nStrLenOrInd;
- /* this should error out */
+ /* this *should* error out so do not show diag message */
nReturn = statement.doNumResultCols( &nCols );
- if ( nReturn != SQL_SUCCESS )
- textstreamStdOut << endl << endl <<
statement.getDiagnostics().join( "\n" ) << endl << endl;
QCOMPARE( nReturn, (SQLRETURN)SQL_ERROR );
nReturn = statement.doExecDirect( TEXT("SELECT * FROM tbMyODBCTest"), SQL_NTS );
@@ -272,21 +270,25 @@
SQLINTEGER nStrLenOrIndCreated = 0;
SQLINTEGER nRowCount = 0;
+printf( "[PAH][%s][%d]\n", __FILE__, __LINE__ );
nReturn = statement.doBindParameter( 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 100,
0, szName, 0, &nStrLenOrIndName );
if ( nReturn != SQL_SUCCESS )
textstreamStdOut << endl << endl <<
statement.getDiagnostics().join( "\n" ) << endl << endl;
QCOMPARE( nReturn, (SQLRETURN)SQL_SUCCESS );
+printf( "[PAH][%s][%d]\n", __FILE__, __LINE__ );
nReturn = statement.doBindParameter( 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 100,
0, szCreated, 0, &nStrLenOrIndCreated );
if ( nReturn != SQL_SUCCESS )
textstreamStdOut << endl << endl <<
statement.getDiagnostics().join( "\n" ) << endl << endl;
QCOMPARE( nReturn, (SQLRETURN)SQL_SUCCESS );
+printf( "[PAH][%s][%d]\n", __FILE__, __LINE__ );
nReturn = statement.doPrepare( TEXT("UPDATE tbMyODBCTest SET dCreated = ? WHERE
vcName = ?"), SQL_NTS );
if ( nReturn != SQL_SUCCESS )
textstreamStdOut << endl << endl <<
statement.getDiagnostics().join( "\n" ) << endl << endl;
QCOMPARE( nReturn, (SQLRETURN)SQL_SUCCESS );
+printf( "[PAH][%s][%d]\n", __FILE__, __LINE__ );
strcpy( (char*)szName, "name2" );
sprintf( (char*)szCreated, "1963-08-17 01:45:00" );
| Thread |
|---|
| • Connector/ODBC 5 commit: r343 - in trunk/MYSQLPlus: MYSQLPlusLib MYSQLPlusTest | pharvey | 16 Jun |