+
+ //=====================================================================
+ void SQLiteTreeHandler::DBRecursiveRemoveNode(Node* node)
+ {
+
+ std::string query = "DELETE FROM ";
+
+ query += GetTree().GetLevelDescriptor(node->GetLevel()).GetName();
+ query += " WHERE ID='"+ node->GetAttribute("ID") + "';";
+
+ UPDATEDB(query);
+ GimmickDebugMessage(2,
+ " Deleting '"
+ <<node->GetLabel()<<"' with ID '"
+ <<node->GetAttribute("ID")
+ <<"' in level "<< GetTree().GetLevelDescriptor(node->GetLevel()).GetName()
+ <<std::endl);
+
+ Node::ChildrenListType::iterator i;
+ for (i = node->GetChildrenList().begin();
+ i != node->GetChildrenList().end();
+ i++)
+ {
+ DBRecursiveRemoveNode((*i));
+ }
+ }
+
+ //=====================================================================
+ unsigned int SQLiteTreeHandler::GetNumberOfChildren(tree::Node* n)
+ {
+ // Query DB
+ int nb=0;
+ int level = n->GetLevel();
+ if(GetTree().GetNumberOfLevels()!=(level+1))
+ {
+ std::string query = "SELECT * FROM ";
+ query += GetTree().GetLevelDescriptor(level+1).GetName();
+ if (level>0)
+ {
+ query += " WHERE PARENT_ID='" + n->UnsafeGetAttribute("ID")
+ + "'";
+ }
+
+ CppSQLite3Query q;
+ QUERYDB(query,q);
+
+
+ while (!q.eof())
+ {
+ nb++;
+ q.nextRow();
+ }
+ }
+ return nb;
+ }
+