From: guigues Date: Thu, 9 Apr 2009 13:47:17 +0000 (+0000) Subject: Number of children ok even when only 1 ! X-Git-Tag: EED.02Oct2009~106 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=1f46782fbd6a0b396516b58546e66b407fd7aa2a;p=creaImageIO.git Number of children ok even when only 1 ! --- diff --git a/src2/creaImageIOSQLiteTreeHandler.cpp b/src2/creaImageIOSQLiteTreeHandler.cpp index 26a9641..17025b4 100644 --- a/src2/creaImageIOSQLiteTreeHandler.cpp +++ b/src2/creaImageIOSQLiteTreeHandler.cpp @@ -132,14 +132,6 @@ namespace creaImageIO { tree::Node* parent = DBGetParent(attr); DBGraftToParent(parent,attr); - if(parent->GetLevel()GetLevel()>0) - { - int nC=GetNumberOfChildren(parent); - nC=nC+1; - std::stringstream out; - out <GetLevel()+1); } @@ -791,9 +783,16 @@ namespace creaImageIO { // Create Node tree::Node* child = new tree::Node(parent,attr); - GetNumberOfChildren(parent); child->SetChildrenLoaded(true); - // std::cout<<"Number of children "<GetNumberOfChildren()<1) + { + int nc = GetNumberOfChildren(parent)+1; + + // std::cout<<"Number of children "<GetNumberOfChildren()<GetLevel()>0 ) @@ -891,33 +890,38 @@ namespace creaImageIO //===================================================================== unsigned int SQLiteTreeHandler::GetNumberOfChildren(tree::Node* n) { - // Query DB - int nb=0; + // Query DB + int nb=0; int level = n->GetLevel(); - - if(level0) - { - std::string query = "SELECT NumberOfChildren FROM "; - query += GetTree().GetLevelDescriptor(level).GetName(); - if (level>0) + + if(level0) { - query += " WHERE ID='" + n->UnsafeGetAttribute("ID") - + "'"; - } - CppSQLite3Query q; - QUERYDB(query,q); + std::string query = "SELECT NumberOfChildren FROM "; + query += GetTree().GetLevelDescriptor(level).GetName(); + if (level>0) + { + query += " WHERE ID='" + n->UnsafeGetAttribute("ID") + + "'"; + } + CppSQLite3Query q; + QUERYDB(query,q); - - while (!q.eof()) - { - for (int fld = 0; fld < q.numFields(); fld++) - { - nb=q.getIntField(fld); - } - q.nextRow(); - } - } - if(nb==0){nb=1;} + + while (!q.eof()) + { + for (int fld = 0; fld < q.numFields(); fld++) + { + nb=q.getIntField(fld); + } + q.nextRow(); + } + } + /* + if(nb==0) + { + nb=1; + } + */ return nb; }