]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOSQLiteTreeHandler.cpp
Added column showing number of children.
[creaImageIO.git] / src2 / creaImageIOSQLiteTreeHandler.cpp
index 3a01e117f8a78f3861ede83c5200f4e054f57e8c..f3595c9f156caa9fed39e9e5ff173f163f8cf33f 100644 (file)
@@ -106,13 +106,7 @@ namespace creaImageIO
   {
     return false;
   }
-  //=====================================================================
-
-  //===================================================================== 
-  unsigned int SQLiteTreeHandler::GetNumberOfChildren(tree::Node* n) 
-  { 
-    return 0; 
-  }
+  
   //===================================================================== 
 
   //===================================================================== 
@@ -682,6 +676,7 @@ namespace creaImageIO
     // Query DB
     int level = node->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,