Modified:
trunk/Driver/Driver/Library/SQLDriverConnectW.cpp
trunk/Driver/Driver/Tests/MYODBCDriverTest.c
trunk/SDK/C/include/MYODBCC.h
trunk/SDK/MYSQLPlus/Library/MConnection.cpp
trunk/SDK/MYSQLPlus/Tests/MYSQLPlusTest.cpp
Log:
WIP: to fix a problem with driver connect - possibly parse problem with connect string.
Modified: trunk/Driver/Driver/Library/SQLDriverConnectW.cpp
===================================================================
--- trunk/Driver/Driver/Library/SQLDriverConnectW.cpp 2006-10-11 22:14:22 UTC (rev 594)
+++ trunk/Driver/Driver/Library/SQLDriverConnectW.cpp 2006-10-12 02:36:38 UTC (rev 595)
@@ -57,6 +57,8 @@
MYODBCDbgReturn( SQL_INVALID_HANDLE );
#endif
- MYODBCDbgReturn( ((MConnection*)hDbc)->doDriverConnect( hWnd,
psInConnectionString, nStringLength1, psOutConnectionString, nBufferLength,
pnStringLength2Ptr, nDriverCompletion ) );
+ SQLRETURN nReturn = ((MConnection*)hDbc)->doDriverConnect( hWnd,
psInConnectionString, nStringLength1, psOutConnectionString, nBufferLength,
pnStringLength2Ptr, nDriverCompletion );
+
+ MYODBCDbgReturn( nReturn );
}
Modified: trunk/Driver/Driver/Tests/MYODBCDriverTest.c
===================================================================
--- trunk/Driver/Driver/Tests/MYODBCDriverTest.c 2006-10-11 22:14:22 UTC (rev 594)
+++ trunk/Driver/Driver/Tests/MYODBCDriverTest.c 2006-10-12 02:36:38 UTC (rev 595)
@@ -49,7 +49,7 @@
{"SQLGetTypeInfo", TSTGetTypeInfo},
{"SQLNumResultCols", TSTNumResultCols},
{"SQLFetch", TSTFetch},
- {"SQLGetData", TSTGetData},
+/* PAH {"SQLGetData", TSTGetData}, */
{"SQLFreeHandle (stm)", TSTFreeHandleStm},
{"SQLDisconnect", TSTDisconnect},
{"SQLFreeHandle (dbc)", TSTFreeHandleDbc},
Modified: trunk/SDK/C/include/MYODBCC.h
===================================================================
--- trunk/SDK/C/include/MYODBCC.h 2006-10-11 22:14:22 UTC (rev 594)
+++ trunk/SDK/C/include/MYODBCC.h 2006-10-12 02:36:38 UTC (rev 595)
@@ -82,6 +82,7 @@
#include <sqlext.h>
/* QtCore include here (no GUI stuff here) */
+#include <QLibrary>
#include <QObject>
#include <QString>
Modified: trunk/SDK/MYSQLPlus/Library/MConnection.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MConnection.cpp 2006-10-11 22:14:22 UTC (rev 594)
+++ trunk/SDK/MYSQLPlus/Library/MConnection.cpp 2006-10-12 02:36:38 UTC (rev 595)
@@ -1,5 +1,7 @@
#include "MInternal.h"
+typedef BOOL (*MYODBCInsDriverConnectFunc)( SQLHWND, MYODBCInsDriverConnect * );
+
/*!
\brief Construct a MConnection.
@@ -2039,7 +2041,7 @@
QString stringInConnectionString;
SQLRETURN nReturn = SQL_SUCCESS;
BOOLEAN bPrompt = false;
- MYODBC_C_DLL hModule = NULL;
+ QLibrary hSetup;
#if MYODBC_DBG > 1
MYODBCDbgInfo( QString("nDriverCompletion=%1=%2").arg( nDriverCompletion ).arg(
MYODBCC::getDriverCompletionString( nDriverCompletion ) ) );
@@ -2169,7 +2171,7 @@
/* failed to connect above so lets take it to another level */
if ( bPrompt )
{
- BOOL (*pFunc)( SQLHWND, MYODBCInsDriverConnect * );
+ MYODBCInsDriverConnectFunc funcMYODBCInsDriverConnect; /* BOOL (*pFunc)( SQLHWND,
MYODBCInsDriverConnect * ); */
/*!
\internal MYODBC RULE
@@ -2187,16 +2189,16 @@
if ( stringSETUP.isNull() )
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_HY000, 0,
QString( "Could not determine the file name of setup library for driver (%1)." ).arg(
driverconnect.getDRIVER() ) ) );
- MYODBCCInitLibrary();
- if ( !(hModule = MYODBCCLoadLibrary( stringSETUP.utf16() )) )
+ hSetup.setFileName( stringSETUP );
+ if ( !hSetup.load() )
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_HY000, 0,
QString( "Could not load the setup library (%1)." ).arg( stringSETUP ) ) );
/*
The setup library should expose a MYODBCSetupDriverConnect() C entry point
for us to call.
*/
- pFunc = (BOOL (*)( SQLHWND, MYODBCInsDriverConnect * )) MYODBCCGetProcAddress(
hModule, "MYODBCSetupDriverConnect" );
- if ( pFunc == NULL )
+ funcMYODBCInsDriverConnect = (MYODBCInsDriverConnectFunc)hSetup.resolve(
"MYODBCSetupDriverConnect" );
+ if ( funcMYODBCInsDriverConnect == NULL )
{
#ifdef WIN32
LPVOID pszMsg;
@@ -2219,7 +2221,7 @@
/*
Prompt. Function returns false if user cancels.
*/
- if ( !pFunc( hWnd, &driverconnect ) )
+ if ( !funcMYODBCInsDriverConnect( hWnd, &driverconnect ) )
{
nReturn = getDiagnostic()->doAppend( MDiagnostic::STATE_HY000, 0, "User
cancelled." );
goto MYODBCDrvDriverConnectExit2;
@@ -2273,8 +2275,9 @@
}
MYODBCDrvDriverConnectExit2:
- if ( hModule )
- MYODBCCFreeLibrary( hModule );
+// PAH
+// if ( hModule )
+// MYODBCCFreeLibrary( hModule );
MYODBCDbgReturn( nReturn );
}
Modified: trunk/SDK/MYSQLPlus/Tests/MYSQLPlusTest.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Tests/MYSQLPlusTest.cpp 2006-10-11 22:14:22 UTC (rev 594)
+++ trunk/SDK/MYSQLPlus/Tests/MYSQLPlusTest.cpp 2006-10-12 02:36:38 UTC (rev 595)
@@ -23,6 +23,7 @@
private slots:
void doDriverConnect();
+ void doDriverConnect2();
void doConnectDirect();
void doConnect();
void doDropTable();
@@ -73,14 +74,22 @@
SQLWCHAR szConnectStringOut[1024];
SQLSMALLINT nLength;
-// SQLRETURN nReturn = pConnection->doDriverConnect( (SQLHWND)1,
pszConnectStringIn, wcslen( pszConnectStringIn ), szConnectStringOut,
sizeof(szConnectStringOut), &nLength, SQL_DRIVER_PROMPT );
- SQLRETURN nReturn = pConnection->doDriverConnect( NULL, pszConnectStringIn,
wcslen( pszConnectStringIn ), szConnectStringOut, sizeof(szConnectStringOut),
&nLength, SQL_DRIVER_NOPROMPT );
+// SQLRETURN nReturn = pConnection->doDriverConnect( (SQLHWND)1,
pszConnectStringIn, wcslen( pszConnectStringIn ), szConnectStringOut,
sizeof(szConnectStringOut), &nLength, SQL_DRIVER_PROMPT );
+ SQLRETURN nReturn = pConnection->doDriverConnect( NULL, pszConnectStringIn,
wcslen( pszConnectStringIn ), szConnectStringOut, sizeof(szConnectStringOut),
&nLength, SQL_DRIVER_NOPROMPT );
delete pEnvironment;
QCOMPARE( nReturn, (SQLRETURN)SQL_SUCCESS );
}
+void MYSQLPlusTest::doDriverConnect2()
+{
+ doDriverConnect();
+ doDriverConnect();
+ doDriverConnect();
+ doDriverConnect();
+}
+
/*!
\brief Connect without using any ODBC system information.
*/
| Thread |
|---|
| • Connector/ODBC 5 commit: r595 - in trunk: Driver/Driver/Library Driver/Driver/Tests SDK/C/include SDK/MYSQLPlus/Library SDK/MYSQLPlus/Tests | pharvey | 12 Oct |