From 218df51eff69ee4d230b46c03dab1fe2345fa702 Mon Sep 17 00:00:00 2001 From: Stefan Sayer Date: Wed, 25 Mar 2009 19:49:45 +0000 Subject: [PATCH] functions to save a result set under another name, and retrieve it later git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1338 8eb893ce-cfd4-0310-b710-fb5ebe64c474 --- apps/dsm/mods/mod_mysql/ModMysql.cpp | 11 ++++++++++- apps/dsm/mods/mod_mysql/ModMysql.h | 2 ++ apps/dsm/mods/mod_mysql/Readme.mod_mysqlpp.txt | 5 +++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/apps/dsm/mods/mod_mysql/ModMysql.cpp b/apps/dsm/mods/mod_mysql/ModMysql.cpp index 05c14217..2f4a6240 100644 --- a/apps/dsm/mods/mod_mysql/ModMysql.cpp +++ b/apps/dsm/mods/mod_mysql/ModMysql.cpp @@ -56,6 +56,8 @@ DSMAction* SCMysqlModule::getAction(const string& from_str) { DEF_CMD("mysql.getResult", SCMyGetResultAction); DEF_CMD("mysql.getClientVersion", SCMyGetClientVersion); DEF_CMD("mysql.resolveQueryParams", SCMyResolveQueryParams); + DEF_CMD("mysql.saveResult", SCMySaveResultAction); + DEF_CMD("mysql.useResult", SCMyUseResultAction); return NULL; } @@ -289,7 +291,6 @@ EXEC_ACTION_START(SCMyQueryAction) { CONST_ACTION_2P(SCMyQueryGetResultAction, ',', true); EXEC_ACTION_START(SCMyQueryGetResultAction) { - DBG("par1='%s', par2='%s'\n", par1.c_str(), par2.c_str()); mysqlpp::Connection* conn = getMyDSMSessionConnection(sc_sess); if (NULL == conn) @@ -410,3 +411,11 @@ MATCH_CONDITION_START(MyConnectedCondition) { return conn->connected(); } MATCH_CONDITION_END; + +EXEC_ACTION_START(SCMySaveResultAction) { + sc_sess->avar[resolveVars(arg, sess, sc_sess, event_params)] = sc_sess->avar[MY_AKEY_RESULT]; +} EXEC_ACTION_END; + +EXEC_ACTION_START(SCMyUseResultAction) { + sc_sess->avar[MY_AKEY_RESULT] = sc_sess->avar[resolveVars(arg, sess, sc_sess, event_params)]; +} EXEC_ACTION_END; diff --git a/apps/dsm/mods/mod_mysql/ModMysql.h b/apps/dsm/mods/mod_mysql/ModMysql.h index bb034a53..78be9076 100644 --- a/apps/dsm/mods/mod_mysql/ModMysql.h +++ b/apps/dsm/mods/mod_mysql/ModMysql.h @@ -85,6 +85,8 @@ DEF_ACTION_1P(SCMyGetClientVersion); DEF_ACTION_1P(SCMyResolveQueryParams); DEF_SCCondition(MyHasResultCondition); DEF_SCCondition(MyConnectedCondition); +DEF_ACTION_1P(SCMySaveResultAction); +DEF_ACTION_1P(SCMyUseResultAction); diff --git a/apps/dsm/mods/mod_mysql/Readme.mod_mysqlpp.txt b/apps/dsm/mods/mod_mysql/Readme.mod_mysqlpp.txt index df124ae9..73e0cebd 100644 --- a/apps/dsm/mods/mod_mysql/Readme.mod_mysqlpp.txt +++ b/apps/dsm/mods/mod_mysql/Readme.mod_mysqlpp.txt @@ -79,7 +79,11 @@ Actions: -- gets client version into $db.client_version mysql.getClientVersion() +-- save result into another name + mysql.saveResult(string name) +-- user saved result + mysql.userResult(string name) Conditions ========== @@ -107,6 +111,7 @@ to the session: | Result | avar["db.res"] | + Result | avar[parameter] on mysql.saveResult Note: Due to the implementation of MySQL++, the complete result set has to be copied one more time internally, if mysql.query() is used. So if