From 5d15e3b6448e88ec969d99d634dfc5134c090e63 Mon Sep 17 00:00:00 2001 From: Michael Friedrich Date: Tue, 1 Oct 2013 12:45:09 +0200 Subject: [PATCH] IdoMysqlConnection: Store last notifications insert id. refs #4768 --- components/db_ido_mysql/idomysqlconnection.cpp | 8 ++++++++ components/db_ido_mysql/idomysqlconnection.h | 1 + 2 files changed, 9 insertions(+) diff --git a/components/db_ido_mysql/idomysqlconnection.cpp b/components/db_ido_mysql/idomysqlconnection.cpp index bfc7a1230..2fa8e9c31 100644 --- a/components/db_ido_mysql/idomysqlconnection.cpp +++ b/components/db_ido_mysql/idomysqlconnection.cpp @@ -339,6 +339,10 @@ bool IdoMysqlConnection::FieldToEscapedString(const String& key, const Value& va *result = static_cast(m_InstanceID); return true; } + if (key == "notification_id") { + *result = static_cast(m_LastNotificationID); + return true; + } Value rawvalue = DbValue::ExtractValue(value); @@ -503,6 +507,10 @@ void IdoMysqlConnection::ExecuteQuery(const DbQuery& query) if (type == DbQueryInsert && query.ConfigUpdate) SetInsertID(query.Object, GetLastInsertID()); } + if (type == DbQueryInsert && query.Table == "notifications") { // FIXME remove hardcoded table name + m_LastNotificationID = GetLastInsertID(); + Log(LogWarning, "db_ido", "saving contactnotification notification_id=" + Convert::ToString(static_cast(m_LastNotificationID))); + } } void IdoMysqlConnection::CleanUpExecuteQuery(const String& table, const String& time_key, double time_value) diff --git a/components/db_ido_mysql/idomysqlconnection.h b/components/db_ido_mysql/idomysqlconnection.h index 7c94ae260..2eca680c6 100644 --- a/components/db_ido_mysql/idomysqlconnection.h +++ b/components/db_ido_mysql/idomysqlconnection.h @@ -63,6 +63,7 @@ private: String m_InstanceDescription; DbReference m_InstanceID; + DbReference m_LastNotificationID; boost::mutex m_ConnectionMutex; bool m_Connected; -- 2.40.0