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