List:Commits« Previous MessageNext Message »
From:pharvey Date:May 9 2006 8:41pm
Subject:Connector/ODBC 5 commit: r214 - in MYSQLPlus: MYSQLPlusLib include
View as plain text  
Modified:
   MYSQLPlus/MYSQLPlusLib/MEnvironment.cpp
   MYSQLPlus/MYSQLPlusLib/MResult.cpp
   MYSQLPlus/MYSQLPlusLib/MStatement.cpp
   MYSQLPlus/include/MEnvironment.h
Log:


Modified: MYSQLPlus/MYSQLPlusLib/MEnvironment.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MEnvironment.cpp	2006-05-09 19:09:25 UTC (rev 213)
+++ MYSQLPlus/MYSQLPlusLib/MEnvironment.cpp	2006-05-09 20:41:13 UTC (rev 214)
@@ -1,6 +1,7 @@
 #include "MInternal.h"
 
-MEnvironment::MEnvironment()
+MEnvironment::MEnvironment( QObject *pObjectParent )
+    : QObject( pObjectParent )
 {
     MYODBCDbgEnter();
 

Modified: MYSQLPlus/MYSQLPlusLib/MResult.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MResult.cpp	2006-05-09 19:09:25 UTC (rev 213)
+++ MYSQLPlus/MYSQLPlusLib/MResult.cpp	2006-05-09 20:41:13 UTC (rev 214)
@@ -43,6 +43,7 @@
     \sa     MYODBCResFree
 */
 MResult::MResult( MStatement *pStatement )
+    : QObject( pStatement )
 {
     MYODBCDbgEnter();
 

Modified: MYSQLPlus/MYSQLPlusLib/MStatement.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MStatement.cpp	2006-05-09 19:09:25 UTC (rev 213)
+++ MYSQLPlus/MYSQLPlusLib/MStatement.cpp	2006-05-09 20:41:13 UTC (rev 214)
@@ -1399,7 +1399,73 @@
     */
     pDiagnostic->doClear();
 
-    MYODBCDbgReturn( SQL_ERROR );
+    SQLRETURN nReturn;
+
+    MYODBCDbgEnter( "MYODBCDrvPrepare" );
+
+    /*
+        \internal ODBC Rule
+
+        (DM) An asynchronously executing function (not this one) was called 
+        for the StatementHandle and was still executing when this function was 
+        called.
+    */
+    if ( pStm->nState >= MYODBC_DRV_STATE_S11 )
+        MYODBCDbgReturn( MYODBCDiaAppend( pStm->hDia, MYODBC_DIA_HY010, 0, NULL ) );
+
+    /*
+        \internal ODBC Rule
+
+        (DM) SQLExecute, SQLExecDirect, SQLBulkOperations, or SQLSetPos was 
+        called for the StatementHandle and returned SQL_NEED_DATA. This 
+        function was called before data was sent for all data-at-execution 
+        parameters or columns.
+    */
+    if ( pStm->nState >= MYODBC_DRV_STATE_S8 )
+        MYODBCDbgReturn( MYODBCDiaAppend( pStm->hDia, MYODBC_DIA_HY010, 0, NULL ) );
+
+    /*
+        \internal ODBC Rule
+
+        A cursor was open on the StatementHandle, and SQLFetch or SQLFetchScroll 
+        had been called. This error is returned by the Driver Manager if 
+        SQLFetch or SQLFetchScroll has not returned SQL_NO_DATA, and is returned 
+        by the driver if SQLFetch or SQLFetchScroll has returned SQL_NO_DATA.
+
+        A result set was open on the StatementHandle, but SQLFetch or 
+        SQLFetchScroll had not been called.
+    */
+    if ( pStm->nState >= MYODBC_DRV_STATE_S5 )
+        MYODBCDbgReturn( MYODBCDiaAppend( pStm->hDia, MYODBC_DIA_24000, 0, NULL ) );
+
+    /* cleanup from any previous processing */
+    if ( pStm->nState > MYODBC_DRV_STATE_S1 )
+    {
+        SQLRETURN nReturn = MYODBCDrvSetStmState( pStm, MYODBC_DRV_STATE_S1 );
+        if ( !SQL_SUCCEEDED( nReturn ) )
+            MYODBCDbgReturn( nReturn );
+    }
+
+    /*! \todo decide what kind of result to create here based upon options/attributes */
+    if ( MYODBCResAlloc( MYODBC_RES_METHOD_RES, 
+                         pStm->hDia, 
+                         pStm->attr_imp_row_desc, 
+                         pStm->pDbc->pMySQL, 
+                         &pStm->hRes ) != SQL_SUCCESS )
+        MYODBCDbgReturn( MYODBCDiaAppend( pStm->hDia, MYODBC_DIA_HY000, 0, "Failed to
prepare an empty result." ) );
+
+    nReturn = MYODBCResPrepare( pStm->hRes, pszStatementText, nLength1 );
+    if ( !SQL_SUCCEEDED( nReturn ) )
+    {
+        MYODBCResFree( pStm->hRes );
+        pStm->hRes = NULL;
+        MYODBCDbgReturn( nReturn );
+    }
+
+    /* new state - we have some form of statement */
+    MYODBCDrvSetStmState( pStm, MYODBC_DRV_STATE_S3 );
+
+    MYODBCDbgReturn( nReturn );
 }
 
 SQLRETURN MStatement::doPrimaryKeys( SQLWCHAR *psCatalogName, SQLSMALLINT nNameLength1,
SQLWCHAR *psSchemaName, SQLSMALLINT nNameLength2, SQLWCHAR *psTableName, SQLSMALLINT
nNameLength3 )

Modified: MYSQLPlus/include/MEnvironment.h
===================================================================
--- MYSQLPlus/include/MEnvironment.h	2006-05-09 19:09:25 UTC (rev 213)
+++ MYSQLPlus/include/MEnvironment.h	2006-05-09 20:41:13 UTC (rev 214)
@@ -7,7 +7,7 @@
 {
     friend class MConnection;
 public:
-    MEnvironment();
+    MEnvironment( QObject *pObjectParent = NULL );
     ~MEnvironment();
 
     enum STATE

Thread
Connector/ODBC 5 commit: r214 - in MYSQLPlus: MYSQLPlusLib includepharvey9 May