List:Commits« Previous MessageNext Message »
From:pharvey Date:January 7 2006 6:04pm
Subject:Connector/ODBC 5 commit: r33 - MYODBCDbg/MYODBCDbgLib MYODBCDbg/include MYODBCDes/MYODBCDesLib MYODBCDes/MYODBCDesTest MYODBCDes/include
View as plain text  
Modified:
   MYODBCDbg/MYODBCDbgLib/MYODBCDbg.cpp
   MYODBCDbg/include/MYODBCDbg.h
   MYODBCDes/MYODBCDesLib/MYODBCDes.cpp
   MYODBCDes/MYODBCDesLib/MYODBCDesAPD.cpp
   MYODBCDes/MYODBCDesLib/MYODBCDesARD.cpp
   MYODBCDes/MYODBCDesLib/MYODBCDesIPD.cpp
   MYODBCDes/MYODBCDesLib/MYODBCDesRec.cpp
   MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.cpp
   MYODBCDes/MYODBCDesTest/MYODBCDesTest.cpp
   MYODBCDes/include/MYODBCDes.h
   MYODBCDes/include/MYODBCDesAPD.h
   MYODBCDes/include/MYODBCDesARD.h
   MYODBCDes/include/MYODBCDesIPD.h
   MYODBCDes/include/MYODBCDesIRD.h
Log:
UNICODE:
- added more unit tests for descriptors
- started on some improvements to debug output

Modified: MYODBCDbg/MYODBCDbgLib/MYODBCDbg.cpp
===================================================================
--- MYODBCDbg/MYODBCDbgLib/MYODBCDbg.cpp	2006-01-07 06:48:25 UTC (rev 32)
+++ MYODBCDbg/MYODBCDbgLib/MYODBCDbg.cpp	2006-01-07 18:04:33 UTC (rev 33)
@@ -45,18 +45,34 @@
 MYODBCDbg::MYODBCDbg( QIODevice * device )
     : QTextStream( device  )
 {
+    nNestLevel = 0;
 }
 
 MYODBCDbg::MYODBCDbg( FILE * fileHandle )
     : QTextStream( fileHandle, QIODevice::WriteOnly )
 {
+    nNestLevel = 0;
 }
 
 MYODBCDbg::MYODBCDbg( QString * string )
     : QTextStream( string, QIODevice::WriteOnly )
 {
+    nNestLevel = 0;
 }
 
+MYODBCDbg::MYODBCDbg( QByteArray * array )
+    : QTextStream( array, QIODevice::WriteOnly )
+{
+    nNestLevel = 0;
+}
+
+MYODBCDbg::MYODBCDbg( const QByteArray & array )
+    : QTextStream( array, QIODevice::WriteOnly )
+{
+    nNestLevel = 0;
+}
+
+
 /*! 
     \brief  ZZZZ
                 
@@ -71,10 +87,12 @@
 */
 void MYODBCDbg::doEnter( const char *pszFile, int nLine, const char *pszFunction )
 {
-    *this << QString( "%1:%2: %3 [ENTER  ] " )
+    doNestLevel();
+    *this << QString( "[ENTER  ] %1:%2: %3 " )
                 .arg( pszFile )
                 .arg( nLine )
                 .arg( pszFunction ) << endl;
+    nNestLevel++;
 }
 
 /*! 
@@ -94,14 +112,23 @@
 */
 SQLRETURN MYODBCDbg::doReturn( const char *pszFile, int nLine, const char *pszFunction,
SQLRETURN nReturn )
 {
-    *this << QString( "%1:%2: %3 [RETURN ] " )
+    doNestLevel();
+    *this << QString( "[RETURN ] %1:%2: %3 " )
                 .arg( pszFile )
                 .arg( nLine )
                 .arg( pszFunction ) << getReturnString( nReturn ) <<  endl;
-
+    nNestLevel--;
     return nReturn;
 }
 
+void MYODBCDbg::doNestLevel()
+{
+    for ( int n = 0; n < nNestLevel; n++ )
+    {
+        *this << " ";
+    }
+}
+
 /*! 
     \brief  Returns a string version of a connection attribute.
                 

Modified: MYODBCDbg/include/MYODBCDbg.h
===================================================================
--- MYODBCDbg/include/MYODBCDbg.h	2006-01-07 06:48:25 UTC (rev 32)
+++ MYODBCDbg/include/MYODBCDbg.h	2006-01-07 18:04:33 UTC (rev 33)
@@ -48,6 +48,8 @@
     void doEnter( const char *pszFile, int nLine, const char *pszFunction );
     SQLRETURN doReturn( const char *pszFile, int nLine, const char *pszFunction,
SQLRETURN nReturn );
 
+    virtual void doNestLevel();
+
     static QString getConnectAttrString( SQLINTEGER nAttribute );
     static QString getConnectOptionString( SQLUSMALLINT nOption );
     static QString getDiagFieldString( SQLSMALLINT nDiagField );
@@ -60,7 +62,7 @@
     static QString getStmtOptionString( SQLUSMALLINT nOption );
 
 protected:
-
+    int nNestLevel;
 };
 
 /*! 
@@ -129,7 +131,7 @@
 {\
 if ( gpMYODBCDbg )\
 {\
-    QString stringHeader = QString( "%1:%2: %3 [INFO   ] " )\
+    QString stringHeader = QString( "[INFO   ] %1:%2: %3 " )\
                             .arg( __FILE__ )\
                             .arg( __LINE__ )\
                             .arg( __FUNCTION__ );\
@@ -143,7 +145,7 @@
 {\
 if ( gpMYODBCDbg )\
 {\
-    QString stringHeader = QString( "%1:%2: %3 [ERROR  ] " )\
+    QString stringHeader = QString( "[ERROR  ] %1:%2: %3 " )\
                             .arg( __FILE__ )\
                             .arg( __LINE__ )\
                             .arg( __FUNCTION__ );\
@@ -157,7 +159,7 @@
 {\
 if ( gpMYODBCDbg )\
 {\
-    QString stringHeader = QString( "%1:%2: %3 [WARNING] " )\
+    QString stringHeader = QString( "[WARNING] %1:%2: %3 " )\
                             .arg( __FILE__ )\
                             .arg( __LINE__ )\
                             .arg( __FUNCTION__ );\
@@ -183,7 +185,7 @@
 {\
 if ( gpMYODBCDbg )\
 {\
-    QString stringHeader = QString( "%1:%2: %3 [RETURN ] " )\
+    QString stringHeader = QString( "[RETURN ] %1:%2: %3 " )\
                             .arg( __FILE__ )\
                             .arg( __LINE__ )\
                             .arg( __FUNCTION__ );\
@@ -196,7 +198,7 @@
 if ( gpMYODBCDbg )\
 {\
     QString stringMessage;\
-    QString stringHeader = QString( "%1:%2: %3 [RETURN ] " )\
+    QString stringHeader = QString( "[RETURN ] %1:%2: %3 " )\
                             .arg( __FILE__ )\
                             .arg( __LINE__ )\
                             .arg( __FUNCTION__ );\

Modified: MYODBCDes/MYODBCDesLib/MYODBCDes.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDes.cpp	2006-01-07 06:48:25 UTC (rev 32)
+++ MYODBCDes/MYODBCDesLib/MYODBCDes.cpp	2006-01-07 18:04:33 UTC (rev 33)
@@ -43,9 +43,13 @@
 
     /* derived classes must create bookmark ass needed */
 
+    /* we must have a owner (dbc or stm) */
+    Q_ASSERT( !hOwner );
+
     /* associate with our owner (caller needs to add us to hOwner's list of descriptors)
*/
     this->hOwner        = hOwner;
 
+    /* descriptors have their own diagnostics - and this is it */
     pdia = new MYODBCDia();
 
     MYODBCDbgReturn2();
@@ -74,13 +78,10 @@
 {
     MYODBCDbgEnter();
 
-//    while ( !listRecords.isEmpty() )
-//        delete listRecords[0];
-
     while ( !listRecords.isEmpty() )
         delete listRecords.takeFirst();
 
-//    delete pdia;
+    delete pdia;
 
     MYODBCDbgReturn2();
 }

Modified: MYODBCDes/MYODBCDesLib/MYODBCDesAPD.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesAPD.cpp	2006-01-07 06:48:25 UTC (rev 32)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesAPD.cpp	2006-01-07 18:04:33 UTC (rev 33)
@@ -32,10 +32,7 @@
             /*!
                 \internal ODBC Rule
 
-                ARD: R
                 APD: R
-                IRD: R
-                IPD: R
             */
             MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY091, 0, NULL ) );
 
@@ -43,10 +40,7 @@
             /*!
                 \internal ODBC Rule
 
-                ARD: R/W
                 APD: R/W
-                IRD: Unused
-                IPD: Unused
             */
             MYODBCDbgReturn( setArraySize( (SQLUINTEGER)pValuePtr ) );
 
@@ -54,10 +48,7 @@
             /*!
                 \internal ODBC Rule
 
-                ARD: R/W
                 APD: R/W
-                IRD: R/W
-                IPD: R/W          
             */    
             MYODBCDbgReturn( setArrayStatusPtr( (SQLUSMALLINT*)pValuePtr ) );
 
@@ -65,10 +56,7 @@
             /*! 
                 \internal ODBC Rule
 
-                ARD: R/W
                 APD: R/W
-                IRD: Unused
-                IPD: Unused
             */
             MYODBCDbgReturn( setBindOffsetPtr( (SQLINTEGER*)pValuePtr ) );
 
@@ -76,10 +64,7 @@
             /*!
                 \internal ODBC Rule
 
-                ARD: R/W
                 APD: R/W
-                IRD: Unused
-                IPD: Unused
             */
 
             /*
@@ -96,31 +81,40 @@
             /*!
                 \internal ODBC Rule
 
-                ARD: R/W
                 APD: R/W
-                IRD: R
-                IPD: R/W
             */
-            /* expand/shrink record list; free, even, bound records as needed */
+            /*! \internal ODBC Rule
+
+                (DM) The FieldIdentifier argument was SQL_DESC_COUNT, and *ValuePtr 
+                argument was less than 0.
+            */
+            if ( (SQLSMALLINT)pValuePtr < 0 )
+                MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_07009, 0, NULL ) );
+
             MYODBCDbgReturn( setCount( (SQLSMALLINT)pValuePtr, true ) );
 
         case SQL_DESC_ROWS_PROCESSED_PTR:
             /*!
                 \internal ODBC Rule
 
-                ARD: Unused
                 APD: Unused
-                IRD: R/W
-                IPD: R/W          
             */    
             MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY091, 0, NULL ) );
 
     } /* switch (for header fields) */
 
-    /* record field needs a valid record */
-    if ( nRecNumber < 0 || nRecNumber >= getCount() )
+    /*! \internal ODBC Rule
+
+        The RecNumber argument was less than 0, and the DescriptorHandle argument 
+        referred to an ARD or an APD.
+    */
+    if ( nRecNumber < 0 )
         MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_07009, 0, NULL ) );
 
+    /* auto expand record list... */
+    if ( nRecNumber >= getCount() )
+        setCount( nRecNumber );
+
     /* handle as record field */
     MYODBCDbgReturn( listRecords[nRecNumber]->setDescField( nFieldIdentifier,
pValuePtr, nBufferLength ) );
 }

Modified: MYODBCDes/MYODBCDesLib/MYODBCDesARD.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesARD.cpp	2006-01-07 06:48:25 UTC (rev 32)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesARD.cpp	2006-01-07 18:04:33 UTC (rev 33)
@@ -103,7 +103,14 @@
 
                 ARD: R/W
             */
-            /* expand/shrink record list; free, even, bound records as needed */
+            /*! \internal ODBC Rule
+
+                (DM) The FieldIdentifier argument was SQL_DESC_COUNT, and *ValuePtr 
+                argument was less than 0.
+            */
+            if ( (SQLSMALLINT)pValuePtr < 0 )
+                MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_07009, 0, NULL ) );
+
             MYODBCDbgReturn( setCount( (SQLSMALLINT)pValuePtr, true ) );
 
         case SQL_DESC_ROWS_PROCESSED_PTR:
@@ -116,10 +123,18 @@
 
     } /* switch (for header fields) */
 
-    /* record field needs a valid record */
-    if ( nRecNumber < 0 || nRecNumber >= getCount() )
+    /*! \internal ODBC Rule
+
+        The RecNumber argument was less than 0, and the DescriptorHandle argument 
+        referred to an ARD or an APD.
+    */
+    if ( nRecNumber < 0 )
         MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_07009, 0, NULL ) );
 
+    /* auto expand record list... */
+    if ( nRecNumber >= getCount() )
+        setCount( nRecNumber );
+
     /* handle as record field */
     MYODBCDbgReturn( listRecords[nRecNumber]->setDescField( nFieldIdentifier,
pValuePtr, nBufferLength ) );
 }

Modified: MYODBCDes/MYODBCDesLib/MYODBCDesIPD.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesIPD.cpp	2006-01-07 06:48:25 UTC (rev 32)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesIPD.cpp	2006-01-07 18:04:33 UTC (rev 33)
@@ -119,6 +119,14 @@
 
     } /* switch (for header fields) */
 
+    /*! \internal ODBC Rule
+
+        The FieldIdentifier argument was a record field, the RecNumber argument 
+        was 0, and the DescriptorHandle argument referred to an IPD handle.
+    */
+    if ( nRecNumber == 0 )
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_07009, 0, NULL ) );
+
     /* record field needs a valid record */
     if ( nRecNumber < 0 || nRecNumber >= getCount() )
         MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_07009, 0, NULL ) );

Modified: MYODBCDes/MYODBCDesLib/MYODBCDesRec.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRec.cpp	2006-01-07 06:48:25 UTC (rev 32)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRec.cpp	2006-01-07 18:04:33 UTC (rev 33)
@@ -20,6 +20,13 @@
 
     this->pdes = pdes;
 
+    nConciseType        = SQL_C_DEFAULT;
+    pDataPtr            = NULL;
+    pnIndicatorPtr      = NULL;
+    pnOctetLengthPtr    = NULL;
+    nParamterType       = SQL_PARAM_INPUT;
+    nType               = SQL_C_DEFAULT;
+
     MYODBCDbgReturn2();
 }
 

Modified: MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.cpp	2006-01-07 06:48:25 UTC (rev 32)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.cpp	2006-01-07 18:04:33 UTC (rev 33)
@@ -18,6 +18,8 @@
 
     Q_ASSERT( !pdes );
 
+    nType = SQL_C_DEFAULT;
+
     MYODBCDbgReturn2();
 }
 

Modified: MYODBCDes/MYODBCDesTest/MYODBCDesTest.cpp
===================================================================
--- MYODBCDes/MYODBCDesTest/MYODBCDesTest.cpp	2006-01-07 06:48:25 UTC (rev 32)
+++ MYODBCDes/MYODBCDesTest/MYODBCDesTest.cpp	2006-01-07 18:04:33 UTC (rev 33)
@@ -1,4 +1,6 @@
 #include <QtTest/QtTest>
+#include <QString>
+#include <QFile>
 #include <MYODBCDes.h>
 #include <MYODBCRtti.h>
 
@@ -8,55 +10,120 @@
 public:
     MYODBCDesTest();
     ~MYODBCDesTest();
-    MYODBC_RTTI_TYPE    nFakeDBC;
-    SQLHANDLE           hOwner;
-    MYODBCDesAPD *      pdes;
+    QFile fileDebugOut;
+
 private slots:
     void alloc();
     void countUp();
+    void autoCountUp();
+    void countDown();
 };
 
 MYODBCDesTest::MYODBCDesTest()
 {
-    MYODBCDbgInit( stdout );
-    pdes = NULL;
+    fileDebugOut.setFileName( "MYODBCDesTest.txt" );
+    if ( fileDebugOut.open( QFile::WriteOnly | QFile::Truncate ) ) 
+    {
+        MYODBCDbgInit( &fileDebugOut );
+    }
+    else
+    {
+        MYODBCDbgInit( stdout );
+    }
 }
 
 MYODBCDesTest::~MYODBCDesTest()
 {
-    if ( pdes) delete pdes;
     MYODBCDbgFini();
+    fileDebugOut.close();
 }
 
 void MYODBCDesTest::alloc()
 {
-    nFakeDBC    = MYODBC_RTTI_DBC;
-    hOwner      = &nFakeDBC;
-    pdes        = new MYODBCDesAPD( hOwner );
+    MYODBC_RTTI_TYPE    nFakeDBC    = MYODBC_RTTI_DBC;
+    SQLHANDLE           hOwner      = &nFakeDBC;
+    MYODBCDesAPD *      pdes        = new MYODBCDesAPD( hOwner );
 
     /* this failing would be bad :... */
     QVERIFY( pdes );
     /* whats is max record number we can access... */
     QVERIFY( pdes->getCount() == 0 );
+
+    delete pdes;
 }
 
 void MYODBCDesTest::countUp()
 {
-    SQLSMALLINT nLastIndex  = 5;
-    SQLRETURN   nReturn;
+    MYODBC_RTTI_TYPE    nFakeDBC    = MYODBC_RTTI_DBC;
+    SQLHANDLE           hOwner      = &nFakeDBC;
+    MYODBCDesAPD *      pdes        = new MYODBCDesAPD( hOwner );
+    SQLSMALLINT         nLastIndex  = 5;
+    SQLSMALLINT         nCount;
+    SQLRETURN           nReturn;
 
     /* try to increase record count... */
     nReturn = pdes->setDescField( 0, SQL_DESC_COUNT, (SQLPOINTER)nLastIndex,
SQL_IS_SMALLINT );
     QVERIFY( SQL_SUCCEEDED( nReturn ) );
     /* read record count... */
-    nReturn = pdes->getDescField( 0, SQL_DESC_COUNT, (SQLPOINTER)&nLastIndex,
SQL_IS_SMALLINT, NULL );
+    nReturn = pdes->getDescField( 0, SQL_DESC_COUNT, (SQLPOINTER)&nCount,
SQL_IS_SMALLINT, NULL );
     QVERIFY( SQL_SUCCEEDED( nReturn ) );
     /* whats is max record number we can access... */
-    QVERIFY( nLastIndex == 5 );
+    QVERIFY( nCount == nLastIndex );
     /* whats is max record number we can access... */
-    QVERIFY( pdes->getCount() == 5 );
+    QVERIFY( pdes->getCount() == nLastIndex );
+
+    delete pdes;
 }
 
+void MYODBCDesTest::autoCountUp()
+{
+    MYODBC_RTTI_TYPE    nFakeDBC    = MYODBC_RTTI_DBC;
+    SQLHANDLE           hOwner      = &nFakeDBC;
+    MYODBCDesAPD *      pdes        = new MYODBCDesAPD( hOwner );
+    SQLRETURN           nReturn;
+    SQLSMALLINT         nRecord = 5;
+    SQLSMALLINT         nCount;
+
+    /* try to increase record count by... */
+    nReturn = pdes->setDescField( nRecord, SQL_DESC_TYPE, (SQLPOINTER)SQL_C_CHAR,
SQL_IS_SMALLINT );
+    QVERIFY( SQL_SUCCEEDED( nReturn ) );
+    /* read record count... */
+    nReturn = pdes->getDescField( 0, SQL_DESC_COUNT, (SQLPOINTER)&nCount,
SQL_IS_SMALLINT, NULL );
+    QVERIFY( SQL_SUCCEEDED( nReturn ) );
+    /* whats is max record number we can access... */
+    QVERIFY( nCount == nRecord );
+    /* whats is max record number we can access... */
+    QVERIFY( pdes->getCount() == nRecord );
+
+    delete pdes;
+}
+
+void MYODBCDesTest::countDown()
+{
+    MYODBC_RTTI_TYPE    nFakeDBC    = MYODBC_RTTI_DBC;
+    SQLHANDLE           hOwner      = &nFakeDBC;
+    MYODBCDesAPD *      pdes        = new MYODBCDesAPD( hOwner );
+    SQLSMALLINT         nCount      = 5;
+    SQLRETURN           nReturn;
+
+    /* try to increase record count... */
+    nReturn = pdes->setDescField( 0, SQL_DESC_COUNT, (SQLPOINTER)nCount,
SQL_IS_SMALLINT );
+    QVERIFY( SQL_SUCCEEDED( nReturn ) );
+    QVERIFY( pdes->getCount() == nCount );
+    /* try to decrease record count... */
+    nCount = 0;
+    nReturn = pdes->setDescField( 0, SQL_DESC_COUNT, (SQLPOINTER)nCount,
SQL_IS_SMALLINT );
+    QVERIFY( SQL_SUCCEEDED( nReturn ) );
+    QVERIFY( pdes->getCount() == nCount );
+    /* try to decrease record count to < 0... */
+    nCount = -1;
+    nReturn = pdes->setDescField( 0, SQL_DESC_COUNT, (SQLPOINTER)nCount,
SQL_IS_SMALLINT );
+    QVERIFY( !SQL_SUCCEEDED( nReturn ) );
+    QVERIFY( pdes->getCount() == 0 );
+
+    delete pdes;
+}
+
 QTEST_MAIN( MYODBCDesTest )
 #include "MYODBCDesTest.moc"
 

Modified: MYODBCDes/include/MYODBCDes.h
===================================================================
--- MYODBCDes/include/MYODBCDes.h	2006-01-07 06:48:25 UTC (rev 32)
+++ MYODBCDes/include/MYODBCDes.h	2006-01-07 18:04:33 UTC (rev 33)
@@ -88,7 +88,7 @@
     virtual SQLRETURN setArrayStatusPtr( SQLUSMALLINT *pnArrayStatusPtr );
     virtual SQLRETURN setBindOffsetPtr( SQLINTEGER *pnBindOffsetPtr );
     virtual SQLRETURN setBindType( SQLINTEGER nBindType );
-    virtual SQLRETURN setCount( SQLSMALLINT nCount, bool bUnbind ) = 0;
+    virtual SQLRETURN setCount( SQLSMALLINT nCount, bool bUnbind = false ) = 0;
     virtual SQLRETURN setRowsProcessedPtr( SQLUINTEGER *pnRowsProcessedPtr );
 
     /* record fields */

Modified: MYODBCDes/include/MYODBCDesAPD.h
===================================================================
--- MYODBCDes/include/MYODBCDesAPD.h	2006-01-07 06:48:25 UTC (rev 32)
+++ MYODBCDes/include/MYODBCDesAPD.h	2006-01-07 18:04:33 UTC (rev 33)
@@ -22,7 +22,7 @@
     /* setters */
     SQLRETURN setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength );
 
-    SQLRETURN setCount( SQLSMALLINT nCount, bool bUnbind );
+    SQLRETURN setCount( SQLSMALLINT nCount, bool bUnbind = false );
 
     /* getters */
 };

Modified: MYODBCDes/include/MYODBCDesARD.h
===================================================================
--- MYODBCDes/include/MYODBCDesARD.h	2006-01-07 06:48:25 UTC (rev 32)
+++ MYODBCDes/include/MYODBCDesARD.h	2006-01-07 18:04:33 UTC (rev 33)
@@ -22,7 +22,7 @@
     /* setters */
     SQLRETURN setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength );
 
-    SQLRETURN setCount( SQLSMALLINT nCount, bool bUnbind );
+    SQLRETURN setCount( SQLSMALLINT nCount, bool bUnbind = false );
 
     /* getters */
 };

Modified: MYODBCDes/include/MYODBCDesIPD.h
===================================================================
--- MYODBCDes/include/MYODBCDesIPD.h	2006-01-07 06:48:25 UTC (rev 32)
+++ MYODBCDes/include/MYODBCDesIPD.h	2006-01-07 18:04:33 UTC (rev 33)
@@ -22,7 +22,7 @@
     /* setters */
     SQLRETURN setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength );
 
-    SQLRETURN setCount( SQLSMALLINT nCount, bool bUnbind );
+    SQLRETURN setCount( SQLSMALLINT nCount, bool bUnbind = false );
 
     /* getters */
 };

Modified: MYODBCDes/include/MYODBCDesIRD.h
===================================================================
--- MYODBCDes/include/MYODBCDesIRD.h	2006-01-07 06:48:25 UTC (rev 32)
+++ MYODBCDes/include/MYODBCDesIRD.h	2006-01-07 18:04:33 UTC (rev 33)
@@ -22,7 +22,7 @@
     /* setters */
     SQLRETURN setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength );
 
-    SQLRETURN setCount( SQLSMALLINT nCount, bool bUnbind );
+    SQLRETURN setCount( SQLSMALLINT nCount, bool bUnbind = false );
 
     /* getters */
 };

Thread
Connector/ODBC 5 commit: r33 - MYODBCDbg/MYODBCDbgLib MYODBCDbg/include MYODBCDes/MYODBCDesLib MYODBCDes/MYODBCDesTest MYODBCDes/includepharvey7 Jan