List:Commits« Previous MessageNext Message »
From:pharvey Date:May 7 2006 6:29pm
Subject:Connector/ODBC 5 commit: r197 - / MYODBCDriver/MYODBCDriverLib MYSQLPlus/MYSQLPlusLib MYSQLPlus/MYSQLPlusTest MYSQLPlus/include
View as plain text  
Modified:
   Build.bat
   MYODBCDriver/MYODBCDriverLib/MYODBCDriverInternal.h
   MYODBCDriver/MYODBCDriverLib/MYODBCDriverLib.pro
   MYSQLPlus/MYSQLPlusLib/MConnection.cpp
   MYSQLPlus/MYSQLPlusLib/MInternal.h
   MYSQLPlus/MYSQLPlusTest/MYSQLPlusTest.cpp
   MYSQLPlus/include/M.h
   MYSQLPlus/include/MConnection.h
   root.pro
Log:


Modified: Build.bat
===================================================================
--- Build.bat	2006-05-06 18:37:04 UTC (rev 196)
+++ Build.bat	2006-05-07 18:29:38 UTC (rev 197)
@@ -21,6 +21,7 @@
 IF EXIST lib ( 
     rem rmdir /Q /S lib
     del /Q lib\MYODBC*
+    del /Q lib\MYSQL*
 )
 IF EXIST bin ( 
     rmdir /Q /S bin

Modified: MYODBCDriver/MYODBCDriverLib/MYODBCDriverInternal.h
===================================================================
--- MYODBCDriver/MYODBCDriverLib/MYODBCDriverInternal.h	2006-05-06 18:37:04 UTC (rev 196)
+++ MYODBCDriver/MYODBCDriverLib/MYODBCDriverInternal.h	2006-05-07 18:29:38 UTC (rev 197)
@@ -3,6 +3,7 @@
 
 #include <MYODBCC.h>
 #include <MYODBCDbg.h>
+#include <MYODBCIns.h>
 #include <M.h>
 
 #include "../include/MYODBCDriver.h"

Modified: MYODBCDriver/MYODBCDriverLib/MYODBCDriverLib.pro
===================================================================
--- MYODBCDriver/MYODBCDriverLib/MYODBCDriverLib.pro	2006-05-06 18:37:04 UTC (rev 196)
+++ MYODBCDriver/MYODBCDriverLib/MYODBCDriverLib.pro	2006-05-07 18:29:38 UTC (rev 197)
@@ -7,26 +7,27 @@
 include( ../../common.pri )
 include( ../../config.pri )
 include( ../../defines.pri )
-CONFIG          += plugin
+include( ../../odbc.pri )
+include( ../../mysql.pri )
+CONFIG          += dll
+# CONFIG          += plugin
 INCLUDEPATH	+= ../../MYODBCC/include
 INCLUDEPATH	+= ../../MYODBCDbg/include
-INCLUDEPATH	+= ../../MYSQLIns/include
+INCLUDEPATH	+= ../../MYODBCIns/include
 INCLUDEPATH	+= ../../MYSQLPlus/include
+INCLUDEPATH	+= ../include
 LIBS		+= -L../../lib
 LIBS		+= -lMYSQLPlus
 LIBS		+= -lMYODBCIns
 LIBS		+= -lMYODBCDbg
 LIBS		+= -lMYODBCC
 
-include( ../../odbc.pri )
-include( ../../mysql.pri )
-
 # #########################################################
 # WIN
 # #########################################################
 win32 {
         LIBS += user32.lib
-        LIBS += /VERBOSE:LIB /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib
/NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib
+#        LIBS += /VERBOSE:LIB /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib
/NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib
 }
 
 # #########################################################

Modified: MYSQLPlus/MYSQLPlusLib/MConnection.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MConnection.cpp	2006-05-06 18:37:04 UTC (rev 196)
+++ MYSQLPlus/MYSQLPlusLib/MConnection.cpp	2006-05-07 18:29:38 UTC (rev 197)
@@ -588,9 +588,9 @@
         psAuthentication was longer than SQL_MAX_OPTION_STRING_LENGTH characters.
     */
     if ( psAuthentication && nNameLength3 == SQL_NTS &&
stringAuthentication.length() > SQL_MAX_OPTION_STRING_LENGTH )
-        MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_HY000, 0,
"pszAuthentication is too long"));
+        MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_HY000, 0,
"pszAuthentication is too long" ) );
     if ( psAuthentication && nNameLength3 != SQL_NTS && nNameLength3 >
SQL_MAX_OPTION_STRING_LENGTH )
-        MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_HY000, 0,
"pszAuthentication is too long"));
+        MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_HY000, 0,
"pszAuthentication is too long" ) );
 
     /*! 
         \internal ODBC RULE (DM)
@@ -663,6 +663,55 @@
     MYODBCDbgReturn( SQL_SUCCESS );
 }
 
+SQLRETURN MConnection::doConnect( MYODBCInsDataSource *pDataSource )
+{
+    MYODBCDbgEnter();
+
+    pDiagnostic->doClear();
+
+    /*!
+        \internal ODBC RULE (DM)
+
+        The specified ConnectionHandle had already been used to establish a 
+        connection with a data source, and the connection was still open or 
+        the user was browsing for a connection.
+
+        Normally a DM thing but we also handle here for case when app linked
+        directly to driver.
+    */
+    if ( getState() != STATE_C2 )
+        MYODBCDbgReturn( pDiagnostic->doAppend( MDiagnostic::DIA_08002 ) );
+
+    /* allocate the MYSQL handle (this will silently do the library init as needed) */
+    pMySQL = mysql_init( NULL );
+
+    /* translate our flags into client while appling pre-connect flags */
+    ulong nFlags = getClientFlag( pDataSource->getOPTION().toULong(),
pDataSource->getSTMT() );
+
+    /* ask mysql for a connection */
+    if ( !mysql_real_connect( (MYSQL*)pMySQL,
+                           pDataSource->getSERVER().toUtf8().data(),
+                           pDataSource->getUID().toUtf8().data(),
+                           pDataSource->getPWD().toUtf8().data(),
+                           pDataSource->getDATABASE().toUtf8().data(),
+                           pDataSource->getPORT().toInt(),
+                           pDataSource->getSOCKET().toUtf8().data(),
+                           (uint)nFlags ) )
+    {
+        pDiagnostic->doAppend( MDiagnostic::DIA_HY000, mysql_errno( (MYSQL*)pMySQL ),
mysql_error( (MYSQL*)pMySQL ) );
+        mysql_close( (MYSQL*)pMySQL );
+        pMySQL = NULL;
+        MYODBCDbgReturn( SQL_ERROR );
+    }
+
+    if ( !pDataSource->getDATABASE().isEmpty() )
+        stringCurrentCatalog = pDataSource->getDATABASE();
+
+    nState = STATE_C4;
+
+    MYODBCDbgReturn( SQL_SUCCESS );
+}
+
 SQLRETURN MConnection::doDisconnect()
 {
     MYODBCDbgEnter();
@@ -1131,7 +1180,6 @@
     if ( !stringSTMT.isEmpty() )
         mysql_options( (MYSQL*)pMySQL, MYSQL_INIT_COMMAND, stringSTMT.toUtf8().data() );
 
-    
     mysql_options( (MYSQL*)pMySQL, MYSQL_OPT_CONNECT_TIMEOUT, (const char
*)&nLoginTimeout );
 
     return nClientFlag;

Modified: MYSQLPlus/MYSQLPlusLib/MInternal.h
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MInternal.h	2006-05-06 18:37:04 UTC (rev 196)
+++ MYSQLPlus/MYSQLPlusLib/MInternal.h	2006-05-07 18:29:38 UTC (rev 197)
@@ -8,7 +8,6 @@
 #include <errmsg.h>
 
 #include <MYODBCDbg.h>
-#include <MYODBCIns.h>
 
 class MResult;
 class MResultPlus;

Modified: MYSQLPlus/MYSQLPlusTest/MYSQLPlusTest.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusTest/MYSQLPlusTest.cpp	2006-05-06 18:37:04 UTC (rev 196)
+++ MYSQLPlus/MYSQLPlusTest/MYSQLPlusTest.cpp	2006-05-07 18:29:38 UTC (rev 197)
@@ -38,13 +38,23 @@
 
 void MYSQLPlusTest::connection()
 {
-    MEnvironment *  pEnvironment  = new MEnvironment();
-    MConnection *   pConnection   = new MConnection( pEnvironment );
+    MEnvironment *      pEnvironment  = new MEnvironment();
+    MConnection *       pConnection   = new MConnection( pEnvironment );
+    MYODBCInsDataSource datasource;
 
+    datasource.setUID( "pharvey" );
+    datasource.setPWD( "pharvey" );
+    datasource.setDATABASE( "test" );
+
+    SQLRETURN nReturn = pConnection->doConnect( &datasource );
+    
     delete pEnvironment;
 
     pConnection     = NULL;
     pEnvironment    = NULL;
+
+    if ( !SQL_SUCCEEDED( nReturn ) )
+        QFAIL( "Failed to connect." );
 }
 
 QTEST_MAIN( MYSQLPlusTest )

Modified: MYSQLPlus/include/M.h
===================================================================
--- MYSQLPlus/include/M.h	2006-05-06 18:37:04 UTC (rev 196)
+++ MYSQLPlus/include/M.h	2006-05-07 18:29:38 UTC (rev 197)
@@ -2,6 +2,7 @@
 #define M_H
 
 #include <MYODBCC.h>
+#include <MYODBCIns.h>
 
 #include <QObject>
 #include <QFile>

Modified: MYSQLPlus/include/MConnection.h
===================================================================
--- MYSQLPlus/include/MConnection.h	2006-05-06 18:37:04 UTC (rev 196)
+++ MYSQLPlus/include/MConnection.h	2006-05-07 18:29:38 UTC (rev 197)
@@ -47,6 +47,7 @@
     /* doers */
     SQLRETURN doBrowseConnect( SQLWCHAR *psInConnectionString, SQLSMALLINT
nStringLength1, SQLWCHAR *psOutConnectionString, SQLSMALLINT nBufferLength, SQLSMALLINT
*pnStringLength2Ptr );
     SQLRETURN doConnect( SQLWCHAR *psServerName, SQLSMALLINT nNameLength1, SQLWCHAR
*psUserName, SQLSMALLINT nNameLength2, SQLWCHAR *psAuthentication, SQLSMALLINT
nNameLength3 );
+    SQLRETURN doConnect( MYODBCInsDataSource *pDataSource );
     SQLRETURN doDisconnect();
     SQLRETURN doDriverConnect( SQLHWND hWnd, SQLWCHAR *pszInConnectionString, SQLSMALLINT
nStringLength1, SQLWCHAR *pszOutConnectionString, SQLSMALLINT nBufferLength, SQLSMALLINT
*pnStringLength2Ptr, SQLUSMALLINT nDriverCompletion );
     SQLRETURN doEndTran( SQLSMALLINT nCompletionType );

Modified: root.pro
===================================================================
--- root.pro	2006-05-06 18:37:04 UTC (rev 196)
+++ root.pro	2006-05-07 18:29:38 UTC (rev 197)
@@ -50,7 +50,7 @@
 		MYODBCTst \
 		MYODBCIns \
         	MYSQLPlus \
-		MYODBCDriver \
+#		MYODBCDriver \
 #		MYODBCSetup \
                 MYODBCInstaller \
                 MYODBCShell

Thread
Connector/ODBC 5 commit: r197 - / MYODBCDriver/MYODBCDriverLib MYSQLPlus/MYSQLPlusLib MYSQLPlus/MYSQLPlusTest MYSQLPlus/includepharvey7 May