List:Commits« Previous MessageNext Message »
From:pharvey Date:May 3 2006 4:41am
Subject:Connector/ODBC 5 commit: r182 - MYSQLPlus/MYSQLPlusLib MYSQLPlus/include doc/Project
View as plain text  
Modified:
   MYSQLPlus/MYSQLPlusLib/MConnection.cpp
   MYSQLPlus/include/MConnection.h
   doc/Project/ScratchPad.odt
Log:


Modified: MYSQLPlus/MYSQLPlusLib/MConnection.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MConnection.cpp	2006-05-02 22:51:00 UTC (rev 181)
+++ MYSQLPlus/MYSQLPlusLib/MConnection.cpp	2006-05-03 02:41:16 UTC (rev 182)
@@ -223,6 +223,7 @@
         stringDSN = "DEFAULT";
 
 
+    /* see if we can load a DSN */
     MYODBCInsDataSource datasource;
     datasource.setMode( MYODBCInsDataSource::DATASOURCE_MODE_DSN_VIEW );
     datasource.setScope( MYODBCInsDataSource::DATASOURCE_SCOPE_BOTH );
@@ -232,47 +233,37 @@
         goto SQLConnectExit1;
     }
 
-++++++++++++++++
     /*!
-        \internal ODBC Rule 
+        \internal ODBC RULE
 
         Precedence for UID is;
             \li as provided to function
             \li as found in system information
 
     */
-    if ( pszUserName && pszUserName[0] != '\0' && (nNameLength2 > 0 ||
nNameLength2 == SQL_NTS) )
-    {
-        MYODBCCFree( pDataSource->pszUSER );
-        pDataSource->pszUSER = MYODBCCStrDup( pszUserName, nNameLength2 );
-    }
+    if ( !stringUserName.isNull() )
+        datasource.setUID( stringUserName );
 
     /*!
-        \internal ODBC Rule 
+        \internal ODBC RULE
 
         Precedence for PWD is;
             \li as provided to function
             \li as found in system information
 
     */
-    if ( pszAuthentication && pszAuthentication[0] != '\0' &&
(nNameLength3 > 0 || nNameLength3 == SQL_NTS) )
-    {
-        MYODBCCFree( pDataSource->pszPASSWORD );
-        pDataSource->pszPASSWORD = MYODBCCStrDup( pszAuthentication, nNameLength2 );
-    }
+    if ( !stringAuthentication.isEmpty() )
+        datasource.setPWD( stringAuthentication );
 
-    /* cleanup pDataSource such that we can use values for mysql_real_connect */
-    MYODBCInsDefaultDataSource( pDataSource );
+    /* allocate the MYSQL handle (this will silently do the library init as needed) */
+    pMySQL = mysql_init( NULL );
 
-    /* allocate the MYSQL handle */
-    pDbc->pMySQL = mysql_init( NULL );
 /*  mysql_options(pDbc->pMySQL, MYSQL_OPT_CONNECT_TIMEOUT, (const char
*)&pDbc->attr_connection_timeout); */
 
     /* translate our flags into client while appling pre-connect flags */
-    nFlags = MYODBCDrvGetClientFlag( pDbc->pMySQL, 
-                                     (ulong)atol( pDataSource->pszOPTION ), 
-                                     (uint)pDbc->attr_login_timeout, 
-                                     pDataSource->pszSTMT );
+    nFlags = getClientFlag( datasource.getOPTION().toULong() ), 
+                            (uint)pDbc ->attr_login_timeout, 
+                            datasource.getSTMT() );
 
     /* ask mysql for a connection */
     if ( !mysql_real_connect( pDbc->pMySQL,
@@ -352,5 +343,161 @@
 }
 
 
+SQLUINTEGER MConnection::getAccessMode()
+{
+    MYODBCDbgEnter();
 
+    MYODBCDbgReturn3( "%d", zz );
+}
 
+SQLUINTEGER MConnection::getAsyncEnable()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%d", zz );
+}
+
+SQLUINTEGER MConnection::getAutoIPD()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%d", SQL_TRUE );
+}
+
+SQLUINTEGER MConnection::getAutocommit()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%d", nAutocommit );
+}
+
+SQLUINTEGER MConnection::getConnectionDead()
+{
+    MYODBCDbgEnter();
+
+    SQLUINTEGER nConnectionDead = SQL_CD_FALSE;
+
+    if ( getState() == STATE_C4 )
+    {
+        mysql_ping( pMySQL );
+    }
+
+    MYODBCDbgReturn3( "%d", nConnectionDead );
+}
+
+SQLUINTEGER MConnection::getConnectionTimeout()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%d", nConnectionTimeout );
+}
+
+QString MConnection::getCurrentCatalog()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%s", stringCurrentCatalog );
+}
+
+SQLUINTEGER MConnection::getLoginTimeout()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%d", nLoginTimeout );
+}
+
+SQLUINTEGER MConnection::getMetadataID()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%d", nMetadataID );
+}
+
+SQLUINTEGER MConnection::getODBCCursors()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%d", nODBCCursors );
+}
+
+SQLUINTEGER MConnection::getPacketSize()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%d", nPacketSize );
+}
+
+HWND_32 MConnection::getQuietMode()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%p", hQuietMode );
+}
+
+SQLUINTEGER MConnection::getTrace()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%d", nTrace );
+}
+
+QString MConnection::getTracefile()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%s", stringTracefile );
+}
+
+QString MConnection::getTranslateLib()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%s", stringTranslateLib );
+}
+
+qint32 MConnection::getTranslateOption()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%d", nTranslateOption );
+}
+
+qint32 MConnection::getTxnIsolation()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%d", nTxnIsolation );
+}
+
+ulong MConnection::getClientFlag( MYSQL *pMySQL, ulong nOptions, uint nConnectTimeout,
const QString &stringInitialStatement )
+{
+    ulong nClientFlag = CLIENT_ODBC;
+
+    if ( nOptions & (MYODBC_FLAG_FOUND_ROWS | MYODBC_FLAG_SAFE) )
+        nClientFlag |= CLIENT_FOUND_ROWS;
+    if ( nOptions & MYODBC_FLAG_NO_SCHEMA )
+        nClientFlag |= CLIENT_NO_SCHEMA;
+/*
+  if (nOptions & (MYODBC_FLAG_BIG_PACKETS | MYODBC_FLAG_SAFE))
+    max_allowed_packet=~0L;
+*/
+    if ( nOptions & MYODBC_FLAG_COMPRESSED_PROTO )
+        nClientFlag |= CLIENT_COMPRESS;
+    if ( nOptions & MYODBC_FLAG_IGNORE_SPACE )
+        nClientFlag |= CLIENT_IGNORE_SPACE;
+#ifdef __WIN__
+    if ( nOptions & MYODBC_FLAG_NAMED_PIPE )
+        mysql_options( pMySQL, MYSQL_OPT_NAMED_PIPE, NullS );
+#endif
+
+    if ( nOptions & MYODBC_FLAG_USE_MYCNF )
+        mysql_options( pMySQL, MYSQL_READ_DEFAULT_GROUP, "odbc" );
+    if ( !stringInitialStatement.isEmpty() )
+        mysql_options( pMySQL, MYSQL_INIT_COMMAND, stringInitialStatement.toUtf8().data()
);
+    if ( nConnectTimeout )
+        mysql_options( pMySQL, MYSQL_OPT_CONNECT_TIMEOUT, (char*)&nConnectTimeout );
+getl
+
+    return nClientFlag;
+}
+

Modified: MYSQLPlus/include/MConnection.h
===================================================================
--- MYSQLPlus/include/MConnection.h	2006-05-02 22:51:00 UTC (rev 181)
+++ MYSQLPlus/include/MConnection.h	2006-05-03 02:41:16 UTC (rev 182)
@@ -53,14 +53,68 @@
     SQLRETURN doNativeSql( SQLWCHAR *psInStatementText, SQLINTEGER nTextLength1, SQLWCHAR
*psOutStatementText, SQLINTEGER nBufferLength, SQLINTEGER *pnTextLength2 );
 
 protected:
+
+    /* setters */
+    SQLRETURN setAccessMode( SQLUINTEGER nAccessMode );
+    SQLRETURN setAsyncEnable( SQLUINTEGER nAsyncEnable );
+    SQLRETURN setAutocommit( SQLUINTEGER nAutocommit );
+    SQLRETURN setConnectionTimeout( SQLUINTEGER nConnectionTimeout );
+    SQLRETURN setCurrentCatalog( QString stringCurrentCatalog );
+    SQLRETURN setLoginTimeout( SQLUINTEGER nLoginTimeout );
+    SQLRETURN setMetadataID( SQLUINTEGER nMetadataID );
+    SQLRETURN setODBCCursors( SQLUINTEGER nODBCCursors );
+    SQLRETURN setPacketSize( SQLUINTEGER nPacketSize );
+    SQLRETURN setQuietMode( HWND_32 hQuietMode );
+    SQLRETURN setTrace( SQLUINTEGER nTrace );
+    SQLRETURN setTracefile( QString stringTracefile );
+    SQLRETURN setTranslateLib( QString stringTranslateLib );
+    SQLRETURN setTranslateOption( qint32 nTranslateOption );
+    SQLRETURN setTxnIsolation( qint32 nTxnIsolation );
+
     /* getters */
-    MDiagnostic *   getDiagnostic();
+    MDiagnostic *getDiagnostic();
 
+    SQLUINTEGER getAccessMode();
+    SQLUINTEGER getAsyncEnable();
+    SQLUINTEGER getAutoIPD();
+    SQLUINTEGER getAutocommit();
+    SQLUINTEGER getConnectionDead();
+    SQLUINTEGER getConnectionTimeout();
+    QString     getCurrentCatalog();
+    SQLUINTEGER getLoginTimeout();
+    SQLUINTEGER getMetadataID();
+    SQLUINTEGER getODBCCursors();
+    SQLUINTEGER getPacketSize();
+    HWND_32     getQuietMode();
+    SQLUINTEGER getTrace();
+    QString     getTracefile();
+    QString     getTranslateLib();
+    qint32      getTranslateOption();
+    qint32      getTxnIsolation();
+
 private:
     STATE           nState;             /*!< our current state                        
                         */
     MDiagnostic *   pDiagnostic;        /*!< our diagnostic information               
                         */
     MYSQL *         pMySQL;             /*!< main mysql connection handle, others may
be used internally        */
     STATEMENT_TYPE  nStatementType;     /*!< tells us which MStatement based class we
are going to work with    */
+
+    SQLUINTEGER     nAccessMode;            /*!< SQL_ATTR_ACCESS_MODE           */
+    SQLUINTEGER     nAsyncEnable;           /*!< SQL_ATTR_ASYNC_ENABLE          */
+/*  SQLUINTEGER     nAutoIPD;        */     /*!< SQL_ATTR_AUTO_IPD              */
+    SQLUINTEGER     nAutocommit;            /*!< SQL_ATTR_AUTOCOMMIT            */
+/*  SQLUINTEGER     nConnectionDead; */     /*!< SQL_ATTR_CONNECTION_DEAD       */
+    SQLUINTEGER     nConnectionTimeout;     /*!< SQL_ATTR_CONNECTION_TIMEOUT    */
+    QString         stringCurrentCatalog;   /*!< SQL_ATTR_CURRENT_CATALOG       */
+    SQLUINTEGER     nLoginTimeout;          /*!< SQL_ATTR_LOGIN_TIMEOUT         */
+    SQLUINTEGER     nMetadataID;            /*!< SQL_ATTR_METADATA_ID           */
+    SQLUINTEGER     nODBCCursors;           /*!< SQL_ATTR_ODBC_CURSORS (DM)     */
+    SQLUINTEGER     nPacketSize;            /*!< SQL_ATTR_PACKET_SIZE           */
+    HWND_32         hQuietMode;             /*!< SQL_ATTR_QUIET_MODE            */
+    SQLUINTEGER     nTrace;                 /*!< SQL_ATTR_TRACE (DM)            */
+    QString         stringTracefile;        /*!< SQL_ATTR_TRACEFILE (DM)        */
+    QString         stringTranslateLib;     /*!< SQL_ATTR_TRANSLATE_LIB         */
+    qint32          nTranslateOption;       /*!< SQL_ATTR_TRANSLATE_OPTION      */
+    qint32          nTxnIsolation;          /*!< SQL_ATTR_TXN_ISOLATION         */
 };
 
 #endif

Modified: doc/Project/ScratchPad.odt
===================================================================
(Binary files differ)

Thread
Connector/ODBC 5 commit: r182 - MYSQLPlus/MYSQLPlusLib MYSQLPlus/include doc/Projectpharvey3 May