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

Reply via email to