Date: Tuesday, January 31, 2006 @ 14:58:20
  Author: zsolt
    Path: /cvsroot/carob/libmysequoia/src

Modified: CarobMySQL.cpp (1.40 -> 1.41)

- correcting behaviour of CarobMYSQL::execute(). The field_count is now filled 
after the execution if there query results a result set.


----------------+
 CarobMySQL.cpp |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)


Index: libmysequoia/src/CarobMySQL.cpp
diff -u libmysequoia/src/CarobMySQL.cpp:1.40 
libmysequoia/src/CarobMySQL.cpp:1.41
--- libmysequoia/src/CarobMySQL.cpp:1.40        Tue Jan 31 13:14:45 2006
+++ libmysequoia/src/CarobMySQL.cpp     Tue Jan 31 14:58:20 2006
@@ -260,6 +260,8 @@
     if (stmtPtr->execute(fromString(std::string(query,length))))
     {
       mysqlPtr->affected_rows = 0;
+      drsPtr = stmtPtr->getResultSet();
+      mysqlPtr->field_count = drsPtr ? drsPtr->getNumberOfColumns() : 0;
       mysqlPtr->status = MYSQL_STATUS_GET_RESULT;
       FREE_AND_NULL_ARRAY(mysqlPtr->info);
     }
@@ -267,6 +269,7 @@
     {
       mysqlPtr->affected_rows = stmtPtr->getUpdateCount();
       mysqlPtr->status = MYSQL_STATUS_READY;
+      mysqlPtr->field_count = 0;
       
       char info[100];
       snprintf(info, sizeof(info), "Records: %llu Duplicates: 0 Warnings: 0", 
mysqlPtr->affected_rows);
@@ -298,19 +301,12 @@
     return 0;
   }
 
-  //If we already stored or used the results, we are not allowed to use it 
again
-  if (drsPtr)
-  {
-    set_error(CR_FETCH_CANCELED, SQLT_UNKNOWN);
-    LOG4CXX_DEBUG(logger, "Leaving get_results.");
-    return 0;
-  }
   try {
     if (stmtPtr)
     {
       MYSQL_RES *result = 0;
       
-      drsPtr = stmtPtr->getResultSet();
+//      drsPtr = stmtPtr->getResultSet();
       if (drsPtr)
       {
         //TODO handle not enough memory (std::nothrow)

_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits

Reply via email to