Date: Thursday, December 15, 2005 @ 12:43:30
  Author: zsolt
    Path: /cvsroot/carob/libmysequoia/src

Modified: CarobMySQL.cpp (1.18 -> 1.19)

Implemented CarobMYSQL::more_results() and CarobMYSQL::next_result()


----------------+
 CarobMySQL.cpp |   33 +++++++++++++++++++++++++++------
 1 files changed, 27 insertions(+), 6 deletions(-)


Index: libmysequoia/src/CarobMySQL.cpp
diff -u libmysequoia/src/CarobMySQL.cpp:1.18 
libmysequoia/src/CarobMySQL.cpp:1.19
--- libmysequoia/src/CarobMySQL.cpp:1.18        Thu Dec 15 10:48:40 2005
+++ libmysequoia/src/CarobMySQL.cpp     Thu Dec 15 12:43:30 2005
@@ -247,8 +247,9 @@
           result->row_count=result->data->rows;
           result->data_cursor = result->data->data;
           mysqlPtr->status = MYSQL_STATUS_READY;
-          
-          //TODO release carob resultset
+    
+          //Release the Carob dataset      
+          stmtPtr->close();
           drsPtr = 0;
         }
         else
@@ -304,13 +305,33 @@
 bool
 CarobMYSQL::more_results ()
 {
-  return 0;
+  return stmtPtr ? stmtPtr->moreResults() : 0;
 }
 
-bool
+int
 CarobMYSQL::next_result ()
 {
-  return 0;
+  int result = -1;
+  
+  if (stmtPtr)
+  {
+    if (liveResultPtr)
+      free_results(liveResultPtr);
+      
+    try
+    {
+      stmtPtr->getMoreResults();
+      if (stmtPtr->getUpdateCount() != -1)
+        result = 0;
+    }
+    catch (CarobException &e)
+    {
+      set_error(e.getErrorCode(), toString(e.description()).c_str(), 
toString(e.getSQLState()).c_str());
+      result = 1;
+    }
+  }
+  
+  return result;
 }
 
 void
@@ -322,7 +343,7 @@
     {
       liveResultPtr = 0;
       drsPtr = 0;
-      //TODO free the carob result too
+      stmtPtr->close();
     }
     
     if (res->data)

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

Reply via email to