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 include | pharvey | 9 May |