X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOSQLiteTreeHandler.cpp;h=7d9f7ef4587ffeffbfb42abac854f05dff4666ff;hb=88745f8677503fa747963f8cd78c52f4b3deb35e;hp=3a01e117f8a78f3861ede83c5200f4e054f57e8c;hpb=ff9cfd68812d5dd296fa71fbcc21e7e867d4da23;p=creaImageIO.git diff --git a/src2/creaImageIOSQLiteTreeHandler.cpp b/src2/creaImageIOSQLiteTreeHandler.cpp index 3a01e11..7d9f7ef 100644 --- a/src2/creaImageIOSQLiteTreeHandler.cpp +++ b/src2/creaImageIOSQLiteTreeHandler.cpp @@ -106,13 +106,7 @@ namespace creaImageIO { return false; } - //===================================================================== - - //===================================================================== - unsigned int SQLiteTreeHandler::GetNumberOfChildren(tree::Node* n) - { - return 0; - } + //===================================================================== //===================================================================== @@ -336,22 +330,22 @@ namespace creaImageIO // Add Attribute 'ID' to Description - GetTree().GetLevelDescriptor(l).Add + GetTree().GetDescriptor().Add (AttributeDescriptor( "ID", "Database Identifier", 0,0, AttributeDescriptor::PRIVATE - )); + ),l); if (l>1) { // Add Attribute 'PARENT_ID' to Description - GetTree().GetLevelDescriptor(l).Add + GetTree().GetDescriptor().Add (AttributeDescriptor( "PARENT_ID", "Database Parent Identifier", 0,0, AttributeDescriptor::PRIVATE - )); + ),l); } } @@ -440,7 +434,7 @@ namespace creaImageIO tree::Descriptor& desc = GetTree().GetDescriptor(); // clears the existing one - desc.GetLevelDescriptorList().clear(); + desc.Clear(); int nblevel = 0; std::string query = "SELECT * FROM LEVELS"; @@ -451,7 +445,7 @@ namespace creaImageIO { std::string name = q.getStringField(0); GimmickMessage(2," * Importing level '"<GetLevel(); std::string query = "SELECT * FROM "; + query += GetTree().GetLevelDescriptor(level+1).GetName(); if (level>0) { @@ -853,6 +848,37 @@ namespace creaImageIO } } + //===================================================================== + + //===================================================================== + 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; + } + /* //===================================================================== bool SQLiteTreeHandler::DBInsert(Node* alien_node,