#include <creaImageIOSQLiteTreeHandler.h>
#include <creaImageIOSystem.h>
+#include <creaImageIOGimmick.h>
+#include <creaImageIOTree.h>
#include "CppSQLite3.h"
#include <sys/stat.h>
-//#include <creaImageIOSQLiteTreeHandlerStructure.h>
-
-//#include <creaImageIOUtilities.h>
-
-//#include <icons/database.xpm>
-
#include <deque>
-//#include <icons/close.xpm>
-
#include <creaWx.h>
+#include <boost/algorithm/string.hpp>
using namespace crea;
-#include <boost/filesystem.hpp>
-#include <boost/algorithm/string/replace.hpp>
+
namespace creaImageIO
{
{
mDB = new CppSQLite3DB;
mIsAdding=false;
- GimmickMessage(1,"SQLite version : "
- <<std::string(mDB->SQLiteVersion())<< std::endl);
+ //GimmickMessage(1,"SQLite version : " <<std::string(mDB->SQLiteVersion())<< std::endl);
}
//=============================================================
command += "Flags int\n";
command += "\n)";
UPDATEDB(command);
-
-
+
// Fill the table *_ATTRIBUTES
LevelDescriptor::AttributeDescriptorListType::const_iterator i;
for (i = GetTree().GetAttributeDescriptorList(l).begin();
}
}
-
+
// Create the attributes table for Root (i.e. Tree)
LevelDescriptor::AttributeDescriptorListType::const_iterator a;
for (a = GetTree().GetAttributeDescriptorList(0).begin();
//========================================================================
///
- std::string& SQLformat(std::string& str)
+ void SQLformat(std::string i_str, std::string &o_str)
{
- // quote must be doubled
- boost::algorithm::replace_all(str,"'","''");
- // Found strange strings which contained NULL char INSIDE string
- int i,size=str.size();
- for (i=0;i<size;++i)
- {
- if (str[i]==0)
- {
- str = str.substr(0,i);
- break;
- }
- }
- // if (i<str.size())
- return str;
+ // quote must be doubled
+ boost::algorithm::replace_all(i_str,"'","''");
+ // Found strange strings which contained NULL char INSIDE string
+ int i,size=i_str.size();
+ for (i=0;i<size;++i)
+ {
+ if (i_str[i]==0)
+ {
+ i_str = i_str.substr(0,i);
+ break;
+ }
+ }
+ o_str = i_str;
}
//========================================================================
GimmickMessage(4,"SQLAppendAttributesValues"<<std::endl);
std::string atts="";
std::string values="";
+ std::string out ="";
tree::Node::AttributeMapType::iterator i;
for (i = n->GetAttributeMap().begin();
i != n->GetAttributeMap().end();
}
atts += "'" + i->first + "'";
- values += "'" + SQLformat(i->second) + "'";
+ SQLformat(i->second, out);
+ values += "'" + out + "'";
atts += ",";
values += ",";
GimmickMessage(4,"'"<<i->first<<"' = '"<<i->second<<"'"<<std::endl);
query += " WHERE PARENT_ID='" + node->GetAttribute("ID")
+ "'";
}
+GimmickDebugMessage(1, "query : '" <<query <<std::endl);
CppSQLite3Query q;
QUERYDB(query,q);
std::string query = "DELETE FROM ";
- query += GetTree().GetLevelDescriptor(node->GetLevel()).GetName();
+
+ query += GetTree().GetLevelDescriptor(node->GetLevel()).GetName();
+
query += " WHERE ID='"+ node->GetAttribute("ID") + "';";
UPDATEDB(query);