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/Project | pharvey | 3 May |