Modified:
MYSQLPlus/MYSQLPlusLib/MConnection.cpp
MYSQLPlus/MYSQLPlusLib/MDescriptorRecord.h
MYSQLPlus/MYSQLPlusLib/MInternal.h
MYSQLPlus/MYSQLPlusLib/MResultRes.cpp
MYSQLPlus/MYSQLPlusLib/MResultRes.h
MYSQLPlus/MYSQLPlusLib/MYSQLPlusLib.pro
MYSQLPlus/include/MConnection.h
MYSQLPlus/include/MDescriptor.h
MYSQLPlus/include/MStatement.h
Log:
Modified: MYSQLPlus/MYSQLPlusLib/MConnection.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MConnection.cpp 2006-05-25 17:01:28 UTC (rev 268)
+++ MYSQLPlus/MYSQLPlusLib/MConnection.cpp 2006-05-25 17:30:52 UTC (rev 269)
@@ -1259,13 +1259,6 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLHANDLE MConnection::getMySQL()
-{
- MYODBCDbgEnter();
-
- MYODBCDbgReturn3( "%p", pMySQL );
-}
-
MDiagnostic *MConnection::getDiagnostic()
{
MYODBCDbgEnter();
Modified: MYSQLPlus/MYSQLPlusLib/MDescriptorRecord.h
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MDescriptorRecord.h 2006-05-25 17:01:28 UTC (rev 268)
+++ MYSQLPlus/MYSQLPlusLib/MDescriptorRecord.h 2006-05-25 17:30:52 UTC (rev 269)
@@ -32,8 +32,8 @@
{
friend class MDescriptor;
friend class MResult;
+ friend class MResultRes;
friend class MResultStmt;
-// friend class MResultRes;
public:
MDescriptorRecord( MDescriptor *pDescriptor );
~MDescriptorRecord();
Modified: MYSQLPlus/MYSQLPlusLib/MInternal.h
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MInternal.h 2006-05-25 17:01:28 UTC (rev 268)
+++ MYSQLPlus/MYSQLPlusLib/MInternal.h 2006-05-25 17:30:52 UTC (rev 269)
@@ -11,8 +11,8 @@
class MResult;
class MResultPlus;
+class MResultRes;
class MResultStmt;
-// class MResultRes;
class MDiagnostic;
class MDiagnosticRecord;
class MDescriptorAPD;
@@ -38,8 +38,8 @@
#include "MDescriptorRecordIRD.h"
#include "MResult.h"
#include "MResultPlus.h"
+#include "MResultRes.h"
#include "MResultStmt.h"
-// #include "MResultRes.h"
#endif
Modified: MYSQLPlus/MYSQLPlusLib/MResultRes.cpp
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MResultRes.cpp 2006-05-25 17:01:28 UTC (rev 268)
+++ MYSQLPlus/MYSQLPlusLib/MResultRes.cpp 2006-05-25 17:30:52 UTC (rev 269)
@@ -208,7 +208,7 @@
case MYSQL_TYPE_TIMESTAMP:
case MYSQL_TYPE_DECIMAL:
case MYSQL_TYPE_NEWDECIMAL:
- variantData.setValue( (const char *)pRes->current_row[nColumn - 1]
) );
+ variantData.setValue( QString( (const char
*)pRes->current_row[nColumn - 1] ) );
break;
case MYSQL_TYPE_VAR_STRING:
case MYSQL_TYPE_TINY_BLOB:
@@ -415,9 +415,9 @@
Insert any parameters.
*/
- QByteArray bytearrayStatement = stringStatement.toUtf8().data();
+ QByteArray bytearrayStatementWithParameters = bytearrayStatementTemplate;
- if ( mysql_real_query( pRes, bytearrayStatement.data(), bytearrayStatement.count() )
)
+ if ( mysql_real_query( getMySQL(), bytearrayStatementWithParameters.data(),
bytearrayStatementWithParameters.count() ) )
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000,
mysql_errno( getMySQL() ), mysql_error( getMySQL() ) ) );
/*!
@@ -426,13 +426,12 @@
Handle non-buffered resultsets based upon isBuffered().
*/
- if ( mysql_store_result( pRes ) )
+ pRes = mysql_store_result( getMySQL() );
+ if ( (!pRes && mysql_field_count( getMySQL() )) || mysql_errno( getMySQL() )
)
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000,
mysql_errno( getMySQL() ), mysql_error( getMySQL() ) ) );
- nRow = 0; /* eof/bof */
-
/* get result-set meta-data */
- nReturn = doLoadMetaData();
+ SQLRETURN nReturn = doLoadMetaData();
if ( !SQL_SUCCEEDED( nReturn ) )
{
doStateRollBack( STATE_INITIALIZED );
@@ -618,13 +617,9 @@
{
MYODBCDbgEnter();
- SQLRETURN nReturn;
-
if ( getState() != STATE_INITIALIZED ) /* should call doClear() first */
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY010 ) );
- stringStatement = QString::fromUtf16( psStatement );
-
/*!
\internal
\todo
@@ -634,7 +629,13 @@
- can quickly insert any parameters at execution time
- know something about the statement (ie is it a positioned update/delete)
- handle escape and quote sequences as needed
+
+ Put the result in bytearrayStatementTemplate.
+
+ \sa mysql_real_escape_string()
*/
+ stringStatement = QString::fromUtf16( psStatement );
+ bytearrayStatementTemplate = stringStatement.toUtf8().data();
setState( STATE_PREPARED );
@@ -875,6 +876,7 @@
getImpParamDesc()->doClear();
getImpRowDesc()->doClear();
stringStatement = QString::null;
+ bytearrayStatementTemplate.clear();
setState(STATE_INITIALIZED );
break;
Modified: MYSQLPlus/MYSQLPlusLib/MResultRes.h
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MResultRes.h 2006-05-25 17:01:28 UTC (rev 268)
+++ MYSQLPlus/MYSQLPlusLib/MResultRes.h 2006-05-25 17:30:52 UTC (rev 269)
@@ -54,9 +54,10 @@
SQLRETURN doStateRollBack( STATE nState );
private:
- MYSQL_RES * pRes; /*!< current resultset as per
mysql_use_result() / mysql_store_result() */
- qulonglong nRow; /*!< Current row number where 0=eof/bof. We
need to keep track of this due to lack of functionality in client. */
- QString stringStatement; /*!< statement as provided to doPrepare()
*/
+ MYSQL_RES * pRes; /*!< current resultset as per
mysql_use_result() / mysql_store_result() */
+ qulonglong nRow; /*!< Current row number where
0=eof/bof. We need to keep track of this due to lack of functionality in client. */
+ QString stringStatement; /*!< statement as provided to
doPrepare() */
+ QByteArray bytearrayStatementTemplate; /*!< prepared statement without
parameter data */
/* setters */
SQLRETURN doSeek( qulonglong nRow );
Modified: MYSQLPlus/MYSQLPlusLib/MYSQLPlusLib.pro
===================================================================
--- MYSQLPlus/MYSQLPlusLib/MYSQLPlusLib.pro 2006-05-25 17:01:28 UTC (rev 268)
+++ MYSQLPlus/MYSQLPlusLib/MYSQLPlusLib.pro 2006-05-25 17:30:52 UTC (rev 269)
@@ -26,6 +26,7 @@
../include/MDescriptor.h \
MResult.h \
MResultPlus.h \
+ MResultRes.h \
MResultStmt.h \
MDescriptorAPD.h \
MDescriptorARD.h \
@@ -47,6 +48,7 @@
MDescriptor.cpp \
MResult.cpp \
MResultPlus.cpp \
+ MResultRes.cpp \
MResultStmt.cpp \
MDescriptorAPD.cpp \
MDescriptorARD.cpp \
Modified: MYSQLPlus/include/MConnection.h
===================================================================
--- MYSQLPlus/include/MConnection.h 2006-05-25 17:01:28 UTC (rev 268)
+++ MYSQLPlus/include/MConnection.h 2006-05-25 17:30:52 UTC (rev 269)
@@ -76,7 +76,6 @@
SQLRETURN setTxnIsolation( qint32 nTxnIsolation );
/* getters */
- SQLHANDLE getMySQL();
MDiagnostic * getDiagnostic();
ulong getClientFlag( ulong nOptions, const QString &stringSTMT );
int getServerAliveSanityCheckInterval();
Modified: MYSQLPlus/include/MDescriptor.h
===================================================================
--- MYSQLPlus/include/MDescriptor.h 2006-05-25 17:01:28 UTC (rev 268)
+++ MYSQLPlus/include/MDescriptor.h 2006-05-25 17:30:52 UTC (rev 269)
@@ -36,8 +36,8 @@
class MResult;
class MResultPlus;
+class MResultRes;
class MResultStmt;
-// class MResultRes;
class MDescriptorRecord;
class MDescriptorRecordAPD;
class MDescriptorRecordARD;
@@ -48,8 +48,8 @@
{
friend class MResult;
friend class MResultPlus;
+ friend class MResultRes;
friend class MResultStmt;
-// friend class MResultRes;
friend class MConnection;
friend class MStatement;
friend class MDescriptorRecord;
Modified: MYSQLPlus/include/MStatement.h
===================================================================
--- MYSQLPlus/include/MStatement.h 2006-05-25 17:01:28 UTC (rev 268)
+++ MYSQLPlus/include/MStatement.h 2006-05-25 17:30:52 UTC (rev 269)
@@ -7,8 +7,8 @@
{
friend class MResult;
friend class MResultPlus;
+ friend class MResultRes;
friend class MResultStmt;
- // friend class MResultRes;
friend class MDescriptor;
public:
| Thread |
|---|
| • Connector/ODBC 5 commit: r269 - in MYSQLPlus: MYSQLPlusLib include | pharvey | 25 May |