List:Commits« Previous MessageNext Message »
From:pharvey Date:May 25 2006 5:30pm
Subject:Connector/ODBC 5 commit: r269 - in MYSQLPlus: MYSQLPlusLib include
View as plain text  
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 includepharvey25 May