List:Commits« Previous MessageNext Message »
From:pharvey Date:May 3 2006 7:15am
Subject:Connector/ODBC 5 commit: r184 - MYSQLPlus/MYSQLPlusLib doc/Project
View as plain text  
Modified:
   MYSQLPlus/MYSQLPlusLib/MConnection.cpp
   doc/Project/SituationReport-20060505.ods
Log:


Modified: MYSQLPlus/MYSQLPlusLib/MConnection.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MConnection.cpp	2006-05-03 07:07:35 UTC (rev 183)
+++ MYSQLPlus/MYSQLPlusLib/MConnection.cpp	2006-05-03 07:15:17 UTC (rev 184)
@@ -159,8 +159,34 @@
             break;
 
         case SQL_ATTR_CURRENT_CATALOG:
+            /*!
+                \internal MYODBC RULE
+
+                We mst have a the length at pValue.
+            */
+            if ( nBufferLength < 1 )
+                MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_HY090 ) );
+
+            /* copy string */
             if ( pValue )
-                MYODBCCStrCopyOut( pszChar, nBufferLength, pDbc->attr_current_catalog,
pnLen );
+            {
+                errno_t nError;
+
+                if ( getCurrentCatalog().isNull() )
+                {
+                    MYODBCDbgReturn( SQL_NO_DATA );
+                    *pnLen = 0;
+                }
+                else if ( nError = MYODBCC::doStrNCpy( (SQLWCHAR*)pValue, nBufferLength /
sizeof(SQLWCHAR), getCurrentCatalog().utf16() ) )
+                    MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_HY000,
nError, tr("doStrNCpy() failed.") ) );
+            }
+
+            /* copy len */
+            *pnLen = getCurrentCatalog().length() * sizeof(SQLWCHAR);
+
+            /* are we truncated */
+            if ( *pnLen > nBufferLength )
+                MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_01004 ) );
             break;
 
         case SQL_ATTR_LOGIN_TIMEOUT:
@@ -200,9 +226,15 @@
             break;
 
         case SQL_ATTR_TRACEFILE:
+            /*!
+                \internal MYODBC RULE
+
+                We mst have a the length at pValue.
+            */
             if ( nBufferLength < 1 )
                 MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_HY090 ) );
 
+            /* copy string */
             if ( pValue )
             {
                 errno_t nError;
@@ -215,14 +247,44 @@
                 else if ( nError = MYODBCC::doStrNCpy( (SQLWCHAR*)pValue, nBufferLength /
sizeof(SQLWCHAR), getTracefile().utf16() ) )
                     MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_HY000,
nError, tr("doStrNCpy() failed.") ) );
             }
+
+            /* copy len */
             *pnLen = getTracefile().length() * sizeof(SQLWCHAR);
+
+            /* are we truncated */
             if ( *pnLen > nBufferLength )
-                MYODBCDbgReturn( SQL_SUCCESS_WITH_INFO );
+                MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_01004 ) );
             break;
 
         case SQL_ATTR_TRANSLATE_LIB:
+            /*!
+                \internal MYODBC RULE
+
+                We mst have a the length at pValue.
+            */
+            if ( nBufferLength < 1 )
+                MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_HY090 ) );
+
+            /* copy string */
             if ( pValue )
-                MYODBCCStrCopyOut( pszChar, nBufferLength, pDbc->attr_translate_lib,
pnLen );
+            {
+                errno_t nError;
+
+                if ( getTranslateLib().isNull() )
+                {
+                    MYODBCDbgReturn( SQL_NO_DATA );
+                    *pnLen = 0;
+                }
+                else if ( nError = MYODBCC::doStrNCpy( (SQLWCHAR*)pValue, nBufferLength /
sizeof(SQLWCHAR), getTranslateLib().utf16() ) )
+                    MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_HY000,
nError, tr("doStrNCpy() failed.") ) );
+            }
+
+            /* copy len */
+            *pnLen = getTranslateLib().length() * sizeof(SQLWCHAR);
+
+            /* are we truncated */
+            if ( *pnLen > nBufferLength )
+                MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_01004 ) );
             break;
 
         case SQL_ATTR_TRANSLATE_OPTION:
@@ -230,6 +292,7 @@
                 *((SQLINTEGER*)pValue) = (SQLINTEGER)getTranslateOption();
             *pnLen = SQL_IS_INTEGER ;
             break;
+
         case SQL_ATTR_TXN_ISOLATION:
             if ( pValue )
                 *((SQLINTEGER*)pValue) = (SQLINTEGER)getTxnIsolation();

Modified: doc/Project/SituationReport-20060505.ods
===================================================================
(Binary files differ)

Thread
Connector/ODBC 5 commit: r184 - MYSQLPlus/MYSQLPlusLib doc/Projectpharvey3 May