summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchristian linke <christian.linke@bmw.de>2012-10-02 12:41:06 +0200
committerchristian linke <christian.linke@bmw.de>2012-10-02 12:57:15 +0200
commit8844ea5c3e210d30afbf923a05779626a96aea77 (patch)
treefac5c5c59210385e8ab6f42b57057a81b68992c8
parent30569133bc5d0bbc31f3c6866fa8d0de5a2203ef (diff)
downloadaudiomanager-8844ea5c3e210d30afbf923a05779626a96aea77.tar.gz
* [GAM-100] nonexisting tables are dropped
Signed-off-by: christian linke <christian.linke@bmw.de>
-rw-r--r--AudioManagerDaemon/src/CAmDatabaseHandler.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/AudioManagerDaemon/src/CAmDatabaseHandler.cpp b/AudioManagerDaemon/src/CAmDatabaseHandler.cpp
index de6296c..4cb0c13 100644
--- a/AudioManagerDaemon/src/CAmDatabaseHandler.cpp
+++ b/AudioManagerDaemon/src/CAmDatabaseHandler.cpp
@@ -1247,16 +1247,19 @@ am_Error_e CAmDatabaseHandler::removeSinkDB(const am_sinkID_t sinkID)
std::string command = "DELETE from " + std::string(SINK_TABLE) + " WHERE sinkID=" + i2s(sinkID);
std::string command1 = "DROP table SinkConnectionFormat" + i2s(sinkID);
- std::string command2 = "DROP table SinkMainSoundProperty" + i2s(sinkID);
- std::string command3 = "DROP table SinkSoundProperty" + i2s(sinkID);
+ std::string command2 = "DROP table SinkSoundProperty" + i2s(sinkID);
+ std::string command3 = "DROP table SinkMainSoundProperty" + i2s(sinkID);
if (!sqQuery(command))
return (E_DATABASE_ERROR);
if (!sqQuery(command1))
return (E_DATABASE_ERROR);
if (!sqQuery(command2))
return (E_DATABASE_ERROR);
- if (!sqQuery(command3))
- return (E_DATABASE_ERROR);
+ if (visible) //only drop table if it ever existed
+ {
+ if (!sqQuery(command3))
+ return (E_DATABASE_ERROR);
+ }
logInfo("DatabaseHandler::removeSinkDB removed:", sinkID);
if (mpDatabaseObserver != NULL)
@@ -1286,8 +1289,12 @@ am_Error_e CAmDatabaseHandler::removeSourceDB(const am_sourceID_t sourceID)
return (E_DATABASE_ERROR);
if (!sqQuery(command2))
return (E_DATABASE_ERROR);
- if (!sqQuery(command3))
- return (E_DATABASE_ERROR);
+
+ if(visible)
+ {
+ if (!sqQuery(command3))
+ return (E_DATABASE_ERROR);
+ }
logInfo("DatabaseHandler::removeSourceDB removed:", sourceID);
if (mpDatabaseObserver)
mpDatabaseObserver->removedSource(sourceID, visible);