Date: Thursday, February 23, 2006 @ 13:58:31
Author: zsolt
Path: /cvsroot/carob/libmysequoia/src
Modified: CarobMySQL.cpp (1.53 -> 1.54) MySQLAPI.cpp (1.46 -> 1.47)
- implemented mysql_insert_id (a query is sent to the server "select
last_insert_id()" to retrieve the value. It will work, if persistent connection
is on)
----------------+
CarobMySQL.cpp | 6 +++---
MySQLAPI.cpp | 15 +++++++++++++--
2 files changed, 16 insertions(+), 5 deletions(-)
Index: libmysequoia/src/CarobMySQL.cpp
diff -u libmysequoia/src/CarobMySQL.cpp:1.53
libmysequoia/src/CarobMySQL.cpp:1.54
--- libmysequoia/src/CarobMySQL.cpp:1.53 Wed Feb 22 15:23:57 2006
+++ libmysequoia/src/CarobMySQL.cpp Thu Feb 23 13:58:31 2006
@@ -191,8 +191,8 @@
try
{
ConnectionParameters connectionParameters(fromString(host), port,
- fromString(db), fromString(user), fromString(passwd), DEBUG_LEVEL_OFF);
-
+ fromString(db), fromString(user), fromString(passwd), DEBUG_LEVEL_OFF,
DEFAULT_POLICY, DEFAULT_RETRY_INTERVAL, true);
+
Connection *newConnectionPtr;
try {
@@ -205,7 +205,7 @@
if (defaultport && (port == 25322))
{
ConnectionParameters connectionParameters2(fromString(host), 3306,
- fromString(db), fromString(user), fromString(passwd),
DEBUG_LEVEL_OFF);
+ fromString(db), fromString(user), fromString(passwd),
DEBUG_LEVEL_OFF, DEFAULT_POLICY, DEFAULT_RETRY_INTERVAL, true);
newConnectionPtr = new Connection(connectionParameters2);
}
else
Index: libmysequoia/src/MySQLAPI.cpp
diff -u libmysequoia/src/MySQLAPI.cpp:1.46 libmysequoia/src/MySQLAPI.cpp:1.47
--- libmysequoia/src/MySQLAPI.cpp:1.46 Wed Feb 22 15:23:57 2006
+++ libmysequoia/src/MySQLAPI.cpp Thu Feb 23 13:58:30 2006
@@ -741,9 +741,20 @@
{
LOG4CXX_DEBUG(logger, "Entering mysql_insert_id: mysql=" << mysql);
- //TODO implementation
int result = 0;
-
+ //just a simulation for the moment. A query "SELECT last_insert_id()" is
sent to the server
+ //this will work, if persistent connection is used.
+ if (mysql && !mysql_query(mysql,"SELECT last_insert_id()"))
+ {
+ MYSQL_RES *res = mysql_store_result(mysql);
+ MYSQL_ROW row;
+ if (res && (row = mysql_fetch_row(res)) && *row)
+ result = atoi(*row);
+ mysql_free_result(res);
+
+ mysql->insert_id = result;
+ }
+
LOG4CXX_DEBUG(logger, "Leaving mysql_insert_id: result=" << result);
return result;
}
_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits