Modified:
trunk/SDK/MYSQLPlus/Library/MConnection.cpp
trunk/SDK/MYSQLPlus/Library/MDiagnosticRecord.cpp
trunk/SDK/MYSQLPlus/Library/MStatement.cpp
trunk/connector-odbc.vpw
Log:
ENH: Make behave more like some other drivers to get MS Access working.
Modified: trunk/SDK/MYSQLPlus/Library/MConnection.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MConnection.cpp 2006-10-07 06:26:22 UTC (rev 579)
+++ trunk/SDK/MYSQLPlus/Library/MConnection.cpp 2006-10-08 00:38:08 UTC (rev 580)
@@ -271,9 +271,8 @@
MS Access tries to get/set this unknown attribute. Most drivers,
including C/ODBC v3
ignore it and return SQL_SUCCESS.
-
- We take exception to this.
*/
+ break;
default:
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_HY092B ) );
Modified: trunk/SDK/MYSQLPlus/Library/MDiagnosticRecord.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MDiagnosticRecord.cpp 2006-10-07 06:26:22 UTC (rev 579)
+++ trunk/SDK/MYSQLPlus/Library/MDiagnosticRecord.cpp 2006-10-08 00:38:08 UTC (rev 580)
@@ -207,6 +207,7 @@
case SQL_DIAG_SQLSTATE:
{
QString stringSQLState = getSQLState();
+ SQLWCHAR *p = (SQLWCHAR*)stringSQLState.utf16();
/* blank out dest */
for ( int nChar = 0; nChar < nBufferLength && nChar < 5;
nChar++ ) ((SQLWCHAR*)pDiagInfoPtr)[nChar] = '\0';
@@ -214,11 +215,11 @@
/* copy not more than min( 5, nBufferLength, stringSQLState.length() )
chars */
int nChars = min( nBufferLength, stringSQLState.length() );
nChars = min( nChars, 5 );
- for ( int nChar = 0; nChar < nChars; nChar++ )
((SQLWCHAR*)pDiagInfoPtr)[nChar] = stringSQLState.at( nChar ).unicode();
+ for ( int nChar = 0; nChar <= nChars; nChar++ )
((SQLWCHAR*)pDiagInfoPtr)[nChar] = p[nChar];
/* string length (in bytes) */
- *pnStringByteLength = max( nChars, 0 );
- if ( *pnStringByteLength < 5 )
+ *pnStringByteLength = max( (nChars * sizeof(SQLWCHAR)), 0 );
+ if ( *pnStringByteLength < 5 * sizeof(SQLWCHAR) )
MYODBCDbgReturn( SQL_SUCCESS_WITH_INFO );
}
break;
Modified: trunk/SDK/MYSQLPlus/Library/MStatement.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MStatement.cpp 2006-10-07 06:26:22 UTC (rev 579)
+++ trunk/SDK/MYSQLPlus/Library/MStatement.cpp 2006-10-08 00:38:08 UTC (rev 580)
@@ -494,6 +494,11 @@
case SQL_ATTR_USE_BOOKMARKS:
MYODBCDbgReturn( setUseBookmarks( (SQLUINTEGER)pValue ) );
+ case 1226: /* MS SQL Server Extension */
+ case 1227:
+ case 1228:
+ break;
+
default:
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_HY092B ) );
}
Modified: trunk/connector-odbc.vpw
===================================================================
--- trunk/connector-odbc.vpw 2006-10-07 06:26:22 UTC (rev 579)
+++ trunk/connector-odbc.vpw 2006-10-08 00:38:08 UTC (rev 580)
@@ -4,6 +4,7 @@
<Project File="SDK/C/C.vpj" />
<Project File="SDK/C/Library/CLibrary.vpj" />
<Project File="connector-odbc.vpj" />
+ <Project File="../../connector-odbc3/trunk/connector-odbc3.vpj" />
<Project File="SDK/C/Tests/CTests.vpj" />
<Project File="SDK/Dbg/Dbg.vpj" />
<Project File="SDK/Dbg/Library/DbgLibrary.vpj" />
@@ -16,10 +17,13 @@
<Project File="SDK/Installer/Library/InsLibrary.vpj" />
<Project File="Tools/Installer/Installer.vpj" />
<Project File="SDK/Installer/Tests/InsTests.vpj" />
+ <Project File="../../connector-odbc3/trunk/myodbc3/myodbc3.vpj" />
+ <Project File="../../connector-odbc3/trunk/MYODBCDbg/MYODBCDbg.vpj" />
<Project File="../../mysql-include.vpj" />
<Project File="SDK/MYSQLPlus/MYSQLPlus.vpj" />
<Project File="SDK/MYSQLPlus/Library/MYSQLPlusLibrary.vpj" />
<Project File="SDK/MYSQLPlus/Tests/MYSQLPlusTests.vpj" />
+ <Project File="../../../PostgreSQL/psqlodbc-08.02.0100/psqlodbc.vpj" />
<Project File="Driver/Setup/Setup.vpj" />
<Project File="Driver/Setup/Library/SetupLibrary.vpj" />
<Project File="Driver/Setup/Tests/SetupTests.vpj" />
| Thread |
|---|
| • Connector/ODBC 5 commit: r580 - in trunk: . SDK/MYSQLPlus/Library | pharvey | 8 Oct |