List:Commits« Previous MessageNext Message »
From:pharvey Date:October 12 2006 4:36am
Subject:Connector/ODBC 5 commit: r595 - in trunk: Driver/Driver/Library Driver/Driver/Tests SDK/C/include SDK/MYSQLPlus/Library SDK/MYSQLPlus/Tests
View as plain text  
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/Testspharvey12 Oct