List:Commits« Previous MessageNext Message »
From:pharvey Date:October 5 2006 5:02pm
Subject:Connector/ODBC 5 commit: r572 - in trunk: Driver/Driver/Library SDK/C/Library SDK/C/include SDK/MYSQLPlus/Library SDK/MYSQLPlus/include
View as plain text  
Modified:
   trunk/Driver/Driver/Library/SQLAllocHandle.cpp
   trunk/Driver/Driver/Library/SQLBindCol.cpp
   trunk/Driver/Driver/Library/SQLBindParameter.cpp
   trunk/Driver/Driver/Library/SQLBrowseConnectW.cpp
   trunk/Driver/Driver/Library/SQLBulkOperations.cpp
   trunk/Driver/Driver/Library/SQLCancel.cpp
   trunk/Driver/Driver/Library/SQLCloseCursor.cpp
   trunk/Driver/Driver/Library/SQLColAttributeW.cpp
   trunk/Driver/Driver/Library/SQLColumnPrivilegesW.cpp
   trunk/Driver/Driver/Library/SQLColumnsW.cpp
   trunk/Driver/Driver/Library/SQLConnectW.cpp
   trunk/Driver/Driver/Library/SQLCopyDesc.cpp
   trunk/Driver/Driver/Library/SQLDescribeColW.cpp
   trunk/Driver/Driver/Library/SQLDescribeParam.cpp
   trunk/Driver/Driver/Library/SQLDisconnect.cpp
   trunk/Driver/Driver/Library/SQLDriverConnectW.cpp
   trunk/Driver/Driver/Library/SQLEndTran.cpp
   trunk/Driver/Driver/Library/SQLExecDirectW.cpp
   trunk/Driver/Driver/Library/SQLExecute.cpp
   trunk/Driver/Driver/Library/SQLFetch.cpp
   trunk/Driver/Driver/Library/SQLFetchScroll.cpp
   trunk/Driver/Driver/Library/SQLForeignKeysW.cpp
   trunk/Driver/Driver/Library/SQLFreeHandle.cpp
   trunk/Driver/Driver/Library/SQLFreeStmt.cpp
   trunk/Driver/Driver/Library/SQLGetConnectAttrW.cpp
   trunk/Driver/Driver/Library/SQLGetCursorNameW.cpp
   trunk/Driver/Driver/Library/SQLGetData.cpp
   trunk/Driver/Driver/Library/SQLGetDescFieldW.cpp
   trunk/Driver/Driver/Library/SQLGetDescRecW.cpp
   trunk/Driver/Driver/Library/SQLGetDiagFieldW.cpp
   trunk/Driver/Driver/Library/SQLGetDiagRecW.cpp
   trunk/Driver/Driver/Library/SQLGetEnvAttr.cpp
   trunk/Driver/Driver/Library/SQLGetFunctions.cpp
   trunk/Driver/Driver/Library/SQLGetInfoW.cpp
   trunk/Driver/Driver/Library/SQLGetStmtAttrW.cpp
   trunk/Driver/Driver/Library/SQLGetTypeInfoW.cpp
   trunk/Driver/Driver/Library/SQLMoreResults.cpp
   trunk/Driver/Driver/Library/SQLNativeSqlW.cpp
   trunk/Driver/Driver/Library/SQLNumParams.cpp
   trunk/Driver/Driver/Library/SQLNumResultCols.cpp
   trunk/Driver/Driver/Library/SQLParamData.cpp
   trunk/Driver/Driver/Library/SQLPrepareW.cpp
   trunk/Driver/Driver/Library/SQLPrimaryKeysW.cpp
   trunk/Driver/Driver/Library/SQLProcedureColumnsW.cpp
   trunk/Driver/Driver/Library/SQLProceduresW.cpp
   trunk/Driver/Driver/Library/SQLPutData.cpp
   trunk/Driver/Driver/Library/SQLRowCount.cpp
   trunk/Driver/Driver/Library/SQLSetConnectAttrW.cpp
   trunk/Driver/Driver/Library/SQLSetCursorNameW.cpp
   trunk/Driver/Driver/Library/SQLSetDescFieldW.cpp
   trunk/Driver/Driver/Library/SQLSetDescRec.cpp
   trunk/Driver/Driver/Library/SQLSetEnvAttr.cpp
   trunk/Driver/Driver/Library/SQLSetPos.cpp
   trunk/Driver/Driver/Library/SQLSetStmtAttrW.cpp
   trunk/Driver/Driver/Library/SQLSpecialColumnsW.cpp
   trunk/Driver/Driver/Library/SQLStatisticsW.cpp
   trunk/Driver/Driver/Library/SQLTablePrivilegesW.cpp
   trunk/Driver/Driver/Library/SQLTablesW.cpp
   trunk/SDK/C/Library/MYODBCC.cpp
   trunk/SDK/C/include/MYODBCC.h
   trunk/SDK/MYSQLPlus/Library/MResult.cpp
   trunk/SDK/MYSQLPlus/Library/MStatement.cpp
   trunk/SDK/MYSQLPlus/include/MStatement.h
Log:
FIX: Minor changes while working to get MS Access to play.
ENH: Added more debug information.

Modified: trunk/Driver/Driver/Library/SQLAllocHandle.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLAllocHandle.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLAllocHandle.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -46,7 +46,9 @@
                                   SQLHANDLE * phOutputHandle )
 {
     MYODBCDbgEnter();
+
 #if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "nHandleType=%1=%2" ).arg( nHandleType ).arg(
MYODBCC::getHandleTypeString( nHandleType ) ) );
     MYODBCDbgInfo( QString( "hInputHandle=%1" ).arg( (qulonglong)hInputHandle ) );
     MYODBCDbgInfo( QString( "phOutputHandle=%1" ).arg( (qulonglong)phOutputHandle ) );
 #endif
@@ -56,47 +58,56 @@
         MYODBCDbgReturn( SQL_ERROR );
 #endif
 
+    SQLRETURN nReturn = SQL_SUCCESS;
+
     switch ( nHandleType )
     {
         case SQL_HANDLE_ENV:
             *phOutputHandle = (SQLHANDLE)(new MEnvironment());
-            MYODBCDbgReturn( SQL_SUCCESS );
+            break;
 
         case SQL_HANDLE_DBC:
 #if MYODBC_DEV > 0
             if ( !hInputHandle )
             {
                 *phOutputHandle = SQL_NULL_HDBC;
-                MYODBCDbgReturn( SQL_INVALID_HANDLE );
+                nReturn = SQL_INVALID_HANDLE;
+                break;
             }
 #endif
             *phOutputHandle = (SQLHANDLE)(new MConnection( (MEnvironment*)hInputHandle
));
-            MYODBCDbgReturn( SQL_SUCCESS );
+            break;
 
         case SQL_HANDLE_STMT:
 #if MYODBC_DEV > 0
             if ( !hInputHandle )
             {
                 *phOutputHandle = SQL_NULL_HSTMT;
-                MYODBCDbgReturn( SQL_INVALID_HANDLE );
+                nReturn = SQL_INVALID_HANDLE;
+                break;
             }
 #endif
             *phOutputHandle = (SQLHANDLE)(new MStatement( (MConnection*)hInputHandle ));
-            MYODBCDbgReturn( SQL_SUCCESS );
+            break;
 
         case SQL_HANDLE_DESC:
 #if MYODBC_DEV > 0
             if ( !hInputHandle )
             {
                 *phOutputHandle = SQL_NULL_HDESC;
-                MYODBCDbgReturn( SQL_INVALID_HANDLE );
+                nReturn = SQL_INVALID_HANDLE;
+                break;
             }
 #endif
             *phOutputHandle = (SQLHANDLE)(new MDescriptor( (MConnection*)hInputHandle ));
-            MYODBCDbgReturn( SQL_SUCCESS );
+            break;
     }
 
-    MYODBCDbgReturn( SQL_SUCCESS );
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "*phOutputHandle=%1" ).arg( (qulonglong)*phOutputHandle ) );
+#endif
+
+    MYODBCDbgReturn( nReturn );
 }
 
 

Modified: trunk/Driver/Driver/Library/SQLBindCol.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLBindCol.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLBindCol.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -43,8 +43,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doBindCol( nColumnNumber, nTargetType,
pTargetValue, nBufferLength, pnStrLenOrInd ) );
 }

Modified: trunk/Driver/Driver/Library/SQLBindParameter.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLBindParameter.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLBindParameter.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -54,8 +54,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doBindParameter( nParameterNumber,
nInputOutputType, nValueType, nParameterType, nColumnSize, nDecimalDigits,
nParameterValue, nBufferLen, pnStrLenOrInd ) );
 }

Modified: trunk/Driver/Driver/Library/SQLBrowseConnectW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLBrowseConnectW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLBrowseConnectW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -17,8 +17,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hDbc=%1" ).arg( (qulonglong)hDbc ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hDbc )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MConnection*)hDbc)->doBrowseConnect( psInConnectionString,
nStringLength1, psOutConnectionString, nBufferLength, pnStringLength2 ) );
 }

Modified: trunk/Driver/Driver/Library/SQLBulkOperations.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLBulkOperations.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLBulkOperations.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -37,8 +37,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doBulkOperations( nOperation ) );
 }

Modified: trunk/Driver/Driver/Library/SQLCancel.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLCancel.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLCancel.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -34,8 +34,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doCancel() );
 }

Modified: trunk/Driver/Driver/Library/SQLCloseCursor.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLCloseCursor.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLCloseCursor.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -28,8 +28,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doCloseCursor() );
 }

Modified: trunk/Driver/Driver/Library/SQLColAttributeW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLColAttributeW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLColAttributeW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -58,8 +58,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doColAttribute( nColumnNumber,
nFieldIdentifier, psCharacterAttribute, nBufferLength, pnStringLength, pnNumericAttribute
) );
 }

Modified: trunk/Driver/Driver/Library/SQLColumnPrivilegesW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLColumnPrivilegesW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLColumnPrivilegesW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -49,8 +49,14 @@
 { 
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doColumnPrivileges( psCatalogName,
nNameLength1, psSchemaName, nNameLength2, psTableName, nNameLength3, psColumnName,
nNameLength4 ) )
 }

Modified: trunk/Driver/Driver/Library/SQLColumnsW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLColumnsW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLColumnsW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -69,8 +69,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doColumns( psCatalogName, nNameLength1,
psSchemaName, nNameLength2, psTableName, nNameLength3, psColumnName, nNameLength4 ) );
 }

Modified: trunk/Driver/Driver/Library/SQLConnectW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLConnectW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLConnectW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -18,8 +18,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hDbc=%1" ).arg( (qulonglong)hDbc ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hDbc )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MConnection*)hDbc)->doConnect( psServerName, nNameLength1,
psUserName, nNameLength2, psAuthentication, nNameLength3 ) );
 }

Modified: trunk/Driver/Driver/Library/SQLCopyDesc.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLCopyDesc.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLCopyDesc.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -41,8 +41,15 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hSourceDescHandle=%1" ).arg( (qulonglong)hSourceDescHandle )
);
+    MYODBCDbgInfo( QString( "hTargetDescHandle=%1" ).arg( (qulonglong)hTargetDescHandle )
);
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hSourceDescHandle || !hTargetDescHandle )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MDescriptor *pDescriptorTarget = (MDescriptor*)hTargetDescHandle;
     MDescriptor *pDescriptorSource = (MDescriptor*)hSourceDescHandle;

Modified: trunk/Driver/Driver/Library/SQLDescribeColW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLDescribeColW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLDescribeColW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -50,8 +50,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doDescribeCol( nColumnNumber, psColumnName,
nBufferLength, pnNameLength, pnDataType, pnColumnSize, pnDecimalDigits, pnNullable ) );
 }

Modified: trunk/Driver/Driver/Library/SQLDescribeParam.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLDescribeParam.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLDescribeParam.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -43,8 +43,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doDescribeParam( nParameterNumber,
pnDataType, pnParameterSize, pnDecimalDigits, pnNullablePtr ) );
 }

Modified: trunk/Driver/Driver/Library/SQLDisconnect.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLDisconnect.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLDisconnect.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -33,8 +33,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hDbc=%1" ).arg( (qulonglong)hDbc ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hDbc )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MConnection*)hDbc)->doDisconnect() );
 }

Modified: trunk/Driver/Driver/Library/SQLDriverConnectW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLDriverConnectW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLDriverConnectW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -48,8 +48,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hDbc=%1" ).arg( (qulonglong)hDbc ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hDbc )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MConnection*)hDbc)->doDriverConnect( hWnd,
psInConnectionString, nStringLength1, psOutConnectionString, nBufferLength,
pnStringLength2Ptr, nDriverCompletion ) );
 }

Modified: trunk/Driver/Driver/Library/SQLEndTran.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLEndTran.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLEndTran.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -35,8 +35,15 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "nHandleType=%1=%2" ).arg( nHandleType ).arg(
MYODBCC::getHandleTypeString( nHandleType ) ) );
+    MYODBCDbgInfo( QString( "hHandle=%1" ).arg( (qulonglong)hHandle ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hHandle )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     switch ( nHandleType )
     {

Modified: trunk/Driver/Driver/Library/SQLExecDirectW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLExecDirectW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLExecDirectW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -33,8 +33,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doExecDirect( psStatementText, nTextLength )
);
 }

Modified: trunk/Driver/Driver/Library/SQLExecute.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLExecute.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLExecute.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -31,8 +31,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doExecute() );
 }

Modified: trunk/Driver/Driver/Library/SQLFetch.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLFetch.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLFetch.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -27,8 +27,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doFetch() );
 }

Modified: trunk/Driver/Driver/Library/SQLFetchScroll.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLFetchScroll.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLFetchScroll.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -34,8 +34,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doFetchScroll( nFetchOrientation,
nFetchOffset ) );
 }

Modified: trunk/Driver/Driver/Library/SQLForeignKeysW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLForeignKeysW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLForeignKeysW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -56,8 +56,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doForeignKeys( psPKCatalogName,
nNameLength1, psPKSchemaName, nNameLength2, psPKTableName, nNameLength3, psFKCatalogName,
nNameLength4, psFKSchemaName, nNameLength5, psFKTableName, nNameLength6 ) );
 }

Modified: trunk/Driver/Driver/Library/SQLFreeHandle.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLFreeHandle.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLFreeHandle.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -28,8 +28,15 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "nHandleType=%1=%2" ).arg( (qulonglong)nHandleType ).arg(
MYODBCC::getHandleTypeString( nHandleType ) ) );
+    MYODBCDbgInfo( QString( "hHandle=%1" ).arg( (qulonglong)hHandle ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hHandle )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     switch ( nHandleType )
     {

Modified: trunk/Driver/Driver/Library/SQLFreeStmt.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLFreeStmt.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLFreeStmt.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -37,8 +37,15 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+    MYODBCDbgInfo( QString( "nOption=%1=%2" ).arg( nOption ).arg(
MYODBCC::getFreeStmtOptionString( nOption ) ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MStatement *pStatement = (MStatement*)hStm;
 

Modified: trunk/Driver/Driver/Library/SQLGetConnectAttrW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLGetConnectAttrW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLGetConnectAttrW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -40,6 +40,11 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hDbc=%1" ).arg( (qulonglong)hDbc ) );
+#endif
+
+#if MYODBC_DEV > 0
     /*!
         \internal MYODBC RULE
 
@@ -51,6 +56,7 @@
     */
     if ( !hDbc )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MConnection*)hDbc)->getConnectAttr( nAttribute, pValue,
nBufferLength, pnStringLength ) );
 }

Modified: trunk/Driver/Driver/Library/SQLGetCursorNameW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLGetCursorNameW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLGetCursorNameW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -32,8 +32,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->getCursorName( psCursorName, nBufferLength,
pnNameLength ) );
 }

Modified: trunk/Driver/Driver/Library/SQLGetData.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLGetData.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLGetData.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -74,8 +74,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->getData( nColumnNumber, nTargetType,
pTargetValue, nBufferLength, pnStrLenOrInd ) );
 }

Modified: trunk/Driver/Driver/Library/SQLGetDescFieldW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLGetDescFieldW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLGetDescFieldW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -17,8 +17,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hDes=%1" ).arg( (qulonglong)hDes ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hDes )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MDescriptor*)hDes)->getDescField( nRecNumber, nFieldIdentifier,
pValue, nBufferLength, pnStringLength ) );
 }

Modified: trunk/Driver/Driver/Library/SQLGetDescRecW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLGetDescRecW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLGetDescRecW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -22,8 +22,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hDes=%1" ).arg( (qulonglong)hDes ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hDes )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MDescriptor*)hDes)->getDescRec( nRecNumber, pszName,
nBufferLength, pnStringLength, pnType, pnSubType, pnLength, pnPrecision, pnScale,
pnNullable ) );
 }

Modified: trunk/Driver/Driver/Library/SQLGetDiagFieldW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLGetDiagFieldW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLGetDiagFieldW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -18,8 +18,15 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "nHandleType=%1=%2" ).arg( nHandleType ).arg(
MYODBCC::getHandleTypeString( nHandleType ) ) );
+    MYODBCDbgInfo( QString( "hHandle=%1" ).arg( (qulonglong)hHandle ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hHandle )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     switch ( nHandleType )
     {

Modified: trunk/Driver/Driver/Library/SQLGetDiagRecW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLGetDiagRecW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLGetDiagRecW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -19,8 +19,15 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "nHandleType=%1=%2" ).arg( nHandleType ).arg(
MYODBCC::getHandleTypeString( nHandleType ) ) );
+    MYODBCDbgInfo( QString( "hHandle=%1" ).arg( (qulonglong)hHandle ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hHandle )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     switch ( nHandleType )
     {

Modified: trunk/Driver/Driver/Library/SQLGetEnvAttr.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLGetEnvAttr.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLGetEnvAttr.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -41,6 +41,11 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hEnv=%1" ).arg( (qulonglong)hEnv ) );
+#endif
+
+#if MYODBC_DEV > 0
     /*!
         \internal MYODBC RULE
 
@@ -48,6 +53,7 @@
     */
     if ( !hEnv )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MEnvironment*)hEnv)->getEnvAttr( nAttribute, pValue,
nBufferLength, pnStringLength ) );
 }

Modified: trunk/Driver/Driver/Library/SQLGetFunctions.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLGetFunctions.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLGetFunctions.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -148,11 +148,14 @@
     MYODBCDbgEnter();
 
 #if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hDbc=%1" ).arg( (qulonglong)hDbc ) );
     MYODBCDbgInfo( QString("nFunctionID=%1=%2").arg( nFunctionID ).arg(
MYODBCC::getFunctionsString( nFunctionID ) ) );
 #endif
 
+#if MYODBC_DEV > 0
     if ( !hDbc )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MConnection *   pConnection = (MConnection*)hDbc;
     SQLINTEGER      nIndex;

Modified: trunk/Driver/Driver/Library/SQLGetInfoW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLGetInfoW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLGetInfoW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -46,8 +46,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hDbc=%1" ).arg( (qulonglong)hDbc ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hDbc )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MConnection*)hDbc)->getInfo( nInfoType, pInfoValue,
nBufferLength, pnStringLength ) );
 }

Modified: trunk/Driver/Driver/Library/SQLGetStmtAttrW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLGetStmtAttrW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLGetStmtAttrW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -16,8 +16,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->getStmtAttr( nAttribute, pValue,
nBufferLength, pnStringLength ) );
 }

Modified: trunk/Driver/Driver/Library/SQLGetTypeInfoW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLGetTypeInfoW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLGetTypeInfoW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -13,8 +13,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->getTypeInfo( nDataType ) );
 }

Modified: trunk/Driver/Driver/Library/SQLMoreResults.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLMoreResults.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLMoreResults.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -30,8 +30,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doMoreResults() );
 }

Modified: trunk/Driver/Driver/Library/SQLNativeSqlW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLNativeSqlW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLNativeSqlW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -17,8 +17,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hDbc=%1" ).arg( (qulonglong)hDbc ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hDbc )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MConnection*)hDbc)->doNativeSql( psInStatementText,
nTextLength1, psOutStatementText, nBufferLength, pnTextLength2 ) );
 }

Modified: trunk/Driver/Driver/Library/SQLNumParams.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLNumParams.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLNumParams.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -30,8 +30,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doNumParams( pnParameterCount ) );
 }

Modified: trunk/Driver/Driver/Library/SQLNumResultCols.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLNumResultCols.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLNumResultCols.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -30,8 +30,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doNumResultCols( pnColumnCountPtr ) );
 }

Modified: trunk/Driver/Driver/Library/SQLParamData.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLParamData.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLParamData.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -32,8 +32,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doParamData( ppValue ) );
 }

Modified: trunk/Driver/Driver/Library/SQLPrepareW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLPrepareW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLPrepareW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -31,8 +31,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doPrepare( psStatementText, nLength1 ) );
 }

Modified: trunk/Driver/Driver/Library/SQLPrimaryKeysW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLPrimaryKeysW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLPrimaryKeysW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -38,8 +38,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doPrimaryKeys( psCatalogName, nNameLength1,
psSchemaName, nNameLength2, psTableName, nNameLength3 ) );
 }

Modified: trunk/Driver/Driver/Library/SQLProcedureColumnsW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLProcedureColumnsW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLProcedureColumnsW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -20,8 +20,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doProcedureColumns( psCatalogName,
nNameLength1, psSchemaName, nNameLength2, psProcName, nNameLength3, psColumnName,
nNameLength4 ) );
 }

Modified: trunk/Driver/Driver/Library/SQLProceduresW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLProceduresW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLProceduresW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -18,8 +18,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doProcedures( psCatalogName, nNameLength1,
psSchemaName, nNameLength2, psProcName, nNameLength3 ) );
 }

Modified: trunk/Driver/Driver/Library/SQLPutData.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLPutData.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLPutData.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -32,8 +32,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doPutData( pValue, nStrLenOrInd ) );
 }

Modified: trunk/Driver/Driver/Library/SQLRowCount.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLRowCount.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLRowCount.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -29,8 +29,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doRowCount( pnRowCountPtr ) );
 }

Modified: trunk/Driver/Driver/Library/SQLSetConnectAttrW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLSetConnectAttrW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLSetConnectAttrW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -27,6 +27,11 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hDbc=%1" ).arg( (qulonglong)hDbc ) );
+#endif
+
+#if MYODBC_DEV > 0
     /*!
         \internal MYODBC RULE
 
@@ -38,6 +43,7 @@
     */
     if ( !hDbc )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MConnection*)hDbc)->setConnectAttr( nAttribute, pValue,
nStringLength ) );
 }

Modified: trunk/Driver/Driver/Library/SQLSetCursorNameW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLSetCursorNameW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLSetCursorNameW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -33,8 +33,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->setCursorName( psCursorName, nNameLength )
);
 }

Modified: trunk/Driver/Driver/Library/SQLSetDescFieldW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLSetDescFieldW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLSetDescFieldW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -16,8 +16,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hDes=%1" ).arg( (qulonglong)hDes ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hDes )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MDescriptor*)hDes)->setDescField( nRecNumber, nFieldIdentifier,
pValuePtr, nBufferLength ) );
 }

Modified: trunk/Driver/Driver/Library/SQLSetDescRec.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLSetDescRec.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLSetDescRec.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -35,8 +35,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hDes=%1" ).arg( (qulonglong)hDes ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hDes )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MDescriptor*)hDes)->setDescRec( nRecNumber, nType, nSubType,
nLength, nPrecision, nScale, pData, pnStringLength, pnIndicator ) );
 }

Modified: trunk/Driver/Driver/Library/SQLSetEnvAttr.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLSetEnvAttr.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLSetEnvAttr.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -27,6 +27,11 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hEnv=%1" ).arg( (qulonglong)hEnv ) );
+#endif
+
+#if MYODBC_DEV > 0
     /*!
         \internal ODBC RULE
 
@@ -40,6 +45,7 @@
     */
     if ( !hEnv )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MEnvironment*)hEnv)->setEnvAttr( nAttribute, pValue,
nStringLength ) );
 }

Modified: trunk/Driver/Driver/Library/SQLSetPos.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLSetPos.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLSetPos.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -36,8 +36,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->setPos( nRowNumber, nOperation, nLockType )
);
 }

Modified: trunk/Driver/Driver/Library/SQLSetStmtAttrW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLSetStmtAttrW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLSetStmtAttrW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -15,8 +15,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->setStmtAttr( nAttribute, pValue,
nStringLength ) );
 }

Modified: trunk/Driver/Driver/Library/SQLSpecialColumnsW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLSpecialColumnsW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLSpecialColumnsW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -39,8 +39,14 @@
 {  
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doSpecialColumns( nIdentifierType,
psCatalogName, nNameLength1, psSchemaName, nNameLength2, psTableName, nNameLength3,
nScope, nNullable ) );
 }

Modified: trunk/Driver/Driver/Library/SQLStatisticsW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLStatisticsW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLStatisticsW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -55,8 +55,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doStatistics( psCatalogName, nNameLength1,
psSchemaName, nNameLength2, psTableName, nNameLength3, nUnique, nAccuracy )  );
 }

Modified: trunk/Driver/Driver/Library/SQLTablePrivilegesW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLTablePrivilegesW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLTablePrivilegesW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -18,8 +18,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doTablePrivileges( psCatalogName,
nCatalogName, psSchemaName, nSchemaName, psTableName, nTableName ) );
 }

Modified: trunk/Driver/Driver/Library/SQLTablesW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLTablesW.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/Driver/Driver/Library/SQLTablesW.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -129,8 +129,14 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "hStm=%1" ).arg( (qulonglong)hStm ) );
+#endif
+
+#if MYODBC_DEV > 0
     if ( !hStm )
         MYODBCDbgReturn( SQL_INVALID_HANDLE );
+#endif
 
     MYODBCDbgReturn( ((MStatement*)hStm)->doTables( psCatalogName, nNameLength1,
psSchemaName, nNameLength2, psTableName, nNameLength3, psTableType, nNameLength4 ) );
 }

Modified: trunk/SDK/C/Library/MYODBCC.cpp
===================================================================
--- trunk/SDK/C/Library/MYODBCC.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/SDK/C/Library/MYODBCC.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -236,6 +236,23 @@
     return "unknown";
 }
 
+QString MYODBCC::getFreeStmtOptionString( SQLUSMALLINT nOption )
+{
+    switch ( nOption )
+    {
+        case SQL_CLOSE:
+            return "SQL_CLOSE";
+        case SQL_DROP:
+            return "SQL_DROP";
+        case SQL_UNBIND:
+            return "SQL_UNBIND";
+        case SQL_RESET_PARAMS:
+            return "SQL_RESET_PARAMS";
+    }
+
+    return "unknown";
+}
+
 /*! 
     \brief  Returns a string version of a function id.
                 
@@ -995,6 +1012,8 @@
     {
         case SQL_C_CHAR:
             return "SQL_C_CHAR";
+        case SQL_C_WCHAR:
+            return "SQL_C_WCHAR";
         case SQL_C_SSHORT:
             return "SQL_C_SSHORT";
         case SQL_C_USHORT:
@@ -1094,6 +1113,8 @@
     {
         case SQL_C_CHAR:
             return "SQL_C_CHAR";
+        case SQL_C_WCHAR:
+            return "SQL_C_WCHAR";
         case SQL_C_SSHORT:
             return "SQL_C_SSHORT";
         case SQL_C_USHORT:
@@ -2041,6 +2062,7 @@
     switch ( nType )
     {
         case SQL_C_CHAR:              /*              1 */
+        case SQL_C_WCHAR:
         case SQL_C_SSHORT:            /*  5 + -20 = -15 */
         case SQL_C_USHORT:            /*  5 + -22 = -17 */
         case SQL_C_SLONG:             /*  4 + -20 = -16 */
@@ -2102,6 +2124,7 @@
     switch ( nType )
     {
         case SQL_C_CHAR:              /*              1 */
+        case SQL_C_WCHAR:              /*            -8 */
         case SQL_C_SSHORT:            /*  5 + -20 = -15 */
         case SQL_C_USHORT:            /*  5 + -22 = -17 */
         case SQL_C_SLONG:             /*  4 + -20 = -16 */

Modified: trunk/SDK/C/include/MYODBCC.h
===================================================================
--- trunk/SDK/C/include/MYODBCC.h	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/SDK/C/include/MYODBCC.h	2006-10-05 15:02:34 UTC (rev 572)
@@ -198,6 +198,7 @@
     static QString getDriverCompletionString( SQLINTEGER nDriverCompletion );
     static QString getDiagFieldString( SQLSMALLINT nDiagField );
     static QString getEnvAttrString( SQLINTEGER nAttribute );
+    static QString getFreeStmtOptionString( SQLUSMALLINT nOption );
     static QString getFunctionsString( SQLUSMALLINT nFunction );
     static QString getHandleTypeString( SQLSMALLINT nHandleType );
     static QString getInfoTypeString( SQLUSMALLINT nInfoType );

Modified: trunk/SDK/MYSQLPlus/Library/MResult.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MResult.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/SDK/MYSQLPlus/Library/MResult.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -550,6 +550,18 @@
     if ( !isValidColumn( nColumn ) )
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_07009 ) );
 
+    /*!
+        \internal ODBC RULE (DM)
+
+        The argument TargetType was neither a valid data type, SQL_C_DEFAULT, nor
SQL_ARD_TYPE. 
+    */
+    if ( !MYODBCC::isConciseTypeC( nTargetType ) && 
+         nTargetType != SQL_C_DEFAULT &&
+         nTargetType != SQL_ARD_TYPE )
+    {
+        MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY003, 0,
QString( "Invalid C-type %1" ).arg( nTargetType ) ) );
+    }
+
     MYODBCDbgReturn( getData( getRowSetRowIndex(), nColumn, nTargetType, pTarget,
nBufferLength, pnLength, pnIndicator ) );
 }
 

Modified: trunk/SDK/MYSQLPlus/Library/MStatement.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MStatement.cpp	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/SDK/MYSQLPlus/Library/MStatement.cpp	2006-10-05 15:02:34 UTC (rev 572)
@@ -352,6 +352,10 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "nAttribute=%1=%2" ).arg( nAttribute ).arg(
MYODBCC::getStmtAttrString( nAttribute ) ) );
+#endif
+
     /*!
         \internal ODBC RULE
 
@@ -783,8 +787,6 @@
     /* merge nLength and nIndicator */
     if ( pnStrLenOrInd )
     { 
-MYODBCDbgInfo( QString( "[PAH] nIndicator=%1" ).arg( nIndicator ) );
-MYODBCDbgInfo( QString( "[PAH] nLength=%1" ).arg( nLength ) );
         if ( nIndicator == SQL_NULL_DATA || nIndicator == SQL_NO_TOTAL )
             *pnStrLenOrInd = nIndicator;
         else
@@ -818,6 +820,10 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "nAttribute=%1=%2" ).arg( nAttribute ).arg(
MYODBCC::getStmtAttrString( nAttribute ) ) );
+#endif
+
     /*!
         \internal ODBC RULE
 
@@ -844,20 +850,32 @@
     if ( isDataNeeded() )
         MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY010 ) );
 
-    /* pnStringLengthPtr is optional        */
-    SQLINTEGER nStringLength;
-    if ( !pnStringLength )
-        pnStringLength = &nStringLength;
+    MYODBCCSet( pnStringLength, 0 );
 
     /* known statement nAttributes */
     switch ( nAttribute )
     {
         case SQL_ATTR_APP_PARAM_DESC:
-            *((MDescriptor**)pValue) = getAppParamDesc();
+            {
+                MDescriptor *pAppParamDesc      = getAppParamDesc();
+
+                  *(SQLPOINTER *)pValue = pAppParamDesc;
+//                *((MDescriptor**)pValue)      = pAppParamDesc;
+                if ( pAppParamDesc )
+                    MYODBCCSet( pnStringLength, sizeof(char*) );
+            }
             break;
 
         case SQL_ATTR_APP_ROW_DESC:
-            *((MDescriptor**)pValue) = getAppRowDesc();
+            {
+                MDescriptor *pAppRowDesc = getAppRowDesc();
+
+                *(SQLPOINTER *)pValue = pAppRowDesc;
+
+//                *((MDescriptor**)pValue) = pAppRowDesc;
+                if ( pAppRowDesc )
+                    MYODBCCSet( pnStringLength, sizeof(char*) );
+            }
             break;
 
         case SQL_ATTR_ASYNC_ENABLE:
@@ -892,11 +910,25 @@
             break;
 
         case SQL_ATTR_IMP_PARAM_DESC:
-            *((MDescriptor**)pValue) = getImpParamDesc();
+            {
+                MDescriptor *pImpParamDesc = getImpParamDesc();
+
+                *(SQLPOINTER *)pValue = pImpParamDesc;
+//                *((MDescriptor**)pValue) = pImpParamDesc;
+                if ( pImpParamDesc )
+                    MYODBCCSet( pnStringLength, sizeof(char*) );
+            }
             break;
 
         case SQL_ATTR_IMP_ROW_DESC:
-            *((MDescriptor**)pValue) = getImpRowDesc();
+            {
+                MDescriptor *pImpRowDesc = getImpRowDesc();
+
+                *(SQLPOINTER *)pValue = pImpRowDesc;
+//                *((MDescriptor**)pValue) = pImpRowDesc;
+                if ( pImpRowDesc )
+                    MYODBCCSet( pnStringLength, sizeof(char*) );
+            }
             break;
 
         case SQL_ATTR_KEYSET_SIZE:
@@ -905,6 +937,7 @@
 
         case SQL_ATTR_MAX_LENGTH:
             *((SQLUINTEGER*)pValue) = getMaxLength();
+            MYODBCCSet( pnStringLength, sizeof(SQLUINTEGER) );
             break;
 
         case SQL_ATTR_MAX_ROWS:
@@ -945,6 +978,7 @@
 
         case SQL_ATTR_QUERY_TIMEOUT:
             *((SQLUINTEGER*)pValue) = getQueryTimeout();
+            MYODBCCSet( pnStringLength, sizeof(SQLUINTEGER) );
             break;
 
         case SQL_ATTR_RETRIEVE_DATA:
@@ -1926,7 +1960,7 @@
     MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_IM001 ) );
 }
 
-SQLRETURN MStatement::doCloseCursor()
+SQLRETURN MStatement::doCloseCursor( BOOLEAN bRelaxed )
 {
     MYODBCDbgEnter();
 
@@ -1943,7 +1977,16 @@
         No cursor was open on the StatementHandle.
     */
     if ( getState() < STATE_S4 || getState() > STATE_S7 )
-        MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_24000 ) );
+    {
+        if ( bRelaxed )
+        {
+            MYODBCDbgReturn( SQL_SUCCESS );
+        }
+        else
+        {
+            MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_24000 ) );
+        }
+    }
 
     /*!
         \internal ODBC RULE (DM)
@@ -5781,6 +5824,10 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "nMaxLength=%1" ).arg( nMaxLength ) );
+#endif
+
     this->nMaxLength = nMaxLength;
 
     MYODBCDbgReturn( SQL_SUCCESS );
@@ -5877,6 +5924,10 @@
 {
     MYODBCDbgEnter();
 
+#if MYODBC_DBG > 1
+    MYODBCDbgInfo( QString( "nQueryTimeout=%1" ).arg( nQueryTimeout ) );
+#endif
+
     this->nQueryTimeout = nQueryTimeout;
 
     MYODBCDbgReturn( SQL_SUCCESS );

Modified: trunk/SDK/MYSQLPlus/include/MStatement.h
===================================================================
--- trunk/SDK/MYSQLPlus/include/MStatement.h	2006-10-04 18:40:06 UTC (rev 571)
+++ trunk/SDK/MYSQLPlus/include/MStatement.h	2006-10-05 15:02:34 UTC (rev 572)
@@ -64,7 +64,7 @@
     SQLRETURN doBindParameter( SQLUSMALLINT nParameterNumber, SQLSMALLINT
nInputOutputType, SQLSMALLINT nValueType, SQLSMALLINT nParameterType, SQLUINTEGER
nColumnSize, SQLSMALLINT nDecimalDigits, SQLPOINTER pParameterValue, SQLINTEGER
nBufferLength, SQLINTEGER *pnStrLenOrInd );
     SQLRETURN doBulkOperations( SQLSMALLINT nOperation );
     SQLRETURN doCancel();
-    SQLRETURN doCloseCursor();
+    SQLRETURN doCloseCursor( BOOLEAN bRelaxed = false );
     SQLRETURN doColAttribute( SQLUSMALLINT nColumnNumber, SQLUSMALLINT nFieldIdentifier,
SQLPOINTER psCharacterAttributePtr, SQLSMALLINT nBufferLength, SQLSMALLINT
*pnStringLengthPtr, SQLPOINTER pnNumericAttributePtr );
     SQLRETURN doColumnPrivileges( SQLWCHAR *psCatalogName, SQLSMALLINT nNameLength1,
SQLWCHAR *psSchemaName, SQLSMALLINT nNameLength2, SQLWCHAR *psTableName, SQLSMALLINT
nNameLength3, SQLWCHAR *psColumnName, SQLSMALLINT nNameLength4 );
     SQLRETURN doColumns( SQLWCHAR *psCatalogName, SQLSMALLINT nNameLength1, SQLWCHAR
*psSchemaName, SQLSMALLINT nNameLength2, SQLWCHAR *psTableName, SQLSMALLINT nNameLength3,
SQLWCHAR *psColumnName, SQLSMALLINT nNameLength4 );

Thread
Connector/ODBC 5 commit: r572 - in trunk: Driver/Driver/Library SDK/C/Library SDK/C/include SDK/MYSQLPlus/Library SDK/MYSQLPlus/includepharvey5 Oct