Index: src/libchcore/ISerializer.cpp
===================================================================
diff -u
--- src/libchcore/ISerializer.cpp	(revision 0)
+++ src/libchcore/ISerializer.cpp	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,29 @@
+// ============================================================================
+//  Copyright (C) 2001-2013 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#include "stdafx.h"
+#include "ISerializer.h"
+
+BEGIN_CHCORE_NAMESPACE
+
+ISerializer::~ISerializer()
+{
+
+}
+
+END_CHCORE_NAMESPACE
Index: src/libchcore/ISerializer.h
===================================================================
diff -u
--- src/libchcore/ISerializer.h	(revision 0)
+++ src/libchcore/ISerializer.h	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,36 @@
+// ============================================================================
+//  Copyright (C) 2001-2014 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#ifndef __ISERIALIZER_H__
+#define __ISERIALIZER_H__
+
+#include "libchcore.h"
+
+BEGIN_CHCORE_NAMESPACE
+
+class LIBCHCORE_API ISerializer
+{
+public:
+	virtual ~ISerializer();
+};
+
+typedef boost::shared_ptr<ISerializer> ISerializerPtr;
+
+END_CHCORE_NAMESPACE
+
+#endif
Index: src/libchcore/ISerializerContainer.cpp
===================================================================
diff -u
--- src/libchcore/ISerializerContainer.cpp	(revision 0)
+++ src/libchcore/ISerializerContainer.cpp	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,28 @@
+// ============================================================================
+//  Copyright (C) 2001-2013 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#include "stdafx.h"
+#include "ISerializerContainer.h"
+
+BEGIN_CHCORE_NAMESPACE
+
+ISerializerContainer::~ISerializerContainer()
+{
+}
+
+END_CHCORE_NAMESPACE
Index: src/libchcore/ISerializerContainer.h
===================================================================
diff -u
--- src/libchcore/ISerializerContainer.h	(revision 0)
+++ src/libchcore/ISerializerContainer.h	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,36 @@
+// ============================================================================
+//  Copyright (C) 2001-2014 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#ifndef __ISERIALIZERCONTAINER_H__
+#define __ISERIALIZERCONTAINER_H__
+
+#include "libchcore.h"
+
+BEGIN_CHCORE_NAMESPACE
+
+class LIBCHCORE_API ISerializerContainer
+{
+public:
+	virtual ~ISerializerContainer();
+};
+
+typedef boost::shared_ptr<ISerializerContainer> ISerializerContainerPtr;
+
+END_CHCORE_NAMESPACE
+
+#endif
Index: src/libchcore/ISerializerRow.cpp
===================================================================
diff -u
--- src/libchcore/ISerializerRow.cpp	(revision 0)
+++ src/libchcore/ISerializerRow.cpp	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,29 @@
+// ============================================================================
+//  Copyright (C) 2001-2014 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#include "stdafx.h"
+#include "ISerializerRow.h"
+
+BEGIN_CHCORE_NAMESPACE
+
+ISerializerRow::~ISerializerRow()
+{
+
+}
+
+END_CHCORE_NAMESPACE
Index: src/libchcore/ISerializerRow.h
===================================================================
diff -u
--- src/libchcore/ISerializerRow.h	(revision 0)
+++ src/libchcore/ISerializerRow.h	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,36 @@
+// ============================================================================
+//  Copyright (C) 2001-2014 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#ifndef __ISERIALIZERROW_H__
+#define __ISERIALIZERROW_H__
+
+#include "libchcore.h"
+
+BEGIN_CHCORE_NAMESPACE
+
+class LIBCHCORE_API ISerializerRow
+{
+public:
+	virtual ~ISerializerRow();
+};
+
+typedef boost::shared_ptr<ISerializerRow> ISerializerRowPtr;
+
+END_CHCORE_NAMESPACE
+
+#endif
Index: src/libchcore/TRowData.cpp
===================================================================
diff -u
--- src/libchcore/TRowData.cpp	(revision 0)
+++ src/libchcore/TRowData.cpp	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,82 @@
+// ============================================================================
+//  Copyright (C) 2001-2013 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#include "stdafx.h"
+#include "TRowData.h"
+
+BEGIN_CHCORE_NAMESPACE
+
+TRowData::TRowData(const TString& strColName, bool bValue) :
+	m_strColName(strColName),
+	m_varValue(bValue)
+{
+}
+
+TRowData::TRowData(const TString& strColName, short iValue) :
+	m_strColName(strColName),
+	m_varValue(iValue)
+{
+}
+
+TRowData::TRowData(const TString& strColName, unsigned short uiValue) :
+	m_strColName(strColName),
+	m_varValue(uiValue)
+{
+}
+
+TRowData::TRowData(const TString& strColName, int iValue) :
+	m_strColName(strColName),
+	m_varValue(iValue)
+{
+}
+
+TRowData::TRowData(const TString& strColName, unsigned int uiValue) :
+	m_strColName(strColName),
+	m_varValue(uiValue)
+{
+}
+
+TRowData::TRowData(const TString& strColName, long long llValue) :
+	m_strColName(strColName),
+	m_varValue(llValue)
+{
+}
+
+TRowData::TRowData(const TString& strColName, unsigned long long ullValue) :
+	m_strColName(strColName),
+	m_varValue(ullValue)
+{
+}
+
+TRowData::TRowData(const TString& strColName, double dValue) :
+	m_strColName(strColName),
+	m_varValue(dValue)
+{
+}
+
+TRowData::TRowData(const TString& strColName, const TString& strValue) :
+	m_strColName(strColName),
+	m_varValue(strValue)
+{
+}
+
+TRowData::~TRowData()
+{
+}
+
+END_CHCORE_NAMESPACE
Index: src/libchcore/TRowData.h
===================================================================
diff -u
--- src/libchcore/TRowData.h	(revision 0)
+++ src/libchcore/TRowData.h	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,71 @@
+// ============================================================================
+//  Copyright (C) 2001-2014 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#ifndef __TROWDATA_H__
+#define __TROWDATA_H__
+
+#include "libchcore.h"
+#include "TString.h"
+#include <boost/variant.hpp>
+
+BEGIN_CHCORE_NAMESPACE
+
+class LIBCHCORE_API TRowData
+{
+public:
+	TRowData(const TString& strColName, bool bValue);
+	TRowData(const TString& strColName, short iValue);
+	TRowData(const TString& strColName, unsigned short uiValue);
+	TRowData(const TString& strColName, int iValue);
+	TRowData(const TString& strColName, unsigned int uiValue);
+	TRowData(const TString& strColName, long long llValue);
+	TRowData(const TString& strColName, unsigned long long llValue);
+	TRowData(const TString& strColName, double dValue);
+	TRowData(const TString& strColName, const TString& strValue);
+
+	~TRowData();
+
+private:
+	typedef boost::variant<
+		bool,
+		short,
+		unsigned short,
+		int,
+		unsigned int,
+		long,
+		unsigned long,
+		long long,
+		unsigned long long,
+		double,
+		TString
+	> InternalVariant;
+
+	TString m_strColName;
+#pragma warning(push)
+#pragma warning(disable: 4251)
+	InternalVariant m_varValue;
+#pragma warning(pop)
+
+	friend class TSQLiteSerializerRow;
+};
+
+typedef boost::shared_ptr<TRowData> TRowDataPtr;
+
+END_CHCORE_NAMESPACE
+
+#endif
Index: src/libchcore/TSQLiteColumnDefinition.cpp
===================================================================
diff -u
--- src/libchcore/TSQLiteColumnDefinition.cpp	(revision 0)
+++ src/libchcore/TSQLiteColumnDefinition.cpp	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,65 @@
+// ============================================================================
+//  Copyright (C) 2001-2013 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#include "stdafx.h"
+#include "TSQLiteColumnDefinition.h"
+#include "ErrorCodes.h"
+#include "TCoreException.h"
+
+BEGIN_CHCORE_NAMESPACE
+
+TSQLiteColumnDefinition::TSQLiteColumnDefinition()
+{
+}
+
+TSQLiteColumnDefinition::~TSQLiteColumnDefinition()
+{
+}
+
+size_t TSQLiteColumnDefinition::AddColumn(const TString& strColumnName)
+{
+	m_vColumns.push_back(strColumnName);
+	return m_vColumns.size() - 1;
+}
+
+void TSQLiteColumnDefinition::Clear()
+{
+	m_vColumns.clear();
+}
+
+size_t TSQLiteColumnDefinition::GetColumnIndex(const TString& strColumnName, bool bAdd)
+{
+	std::vector<TString>::const_iterator iterFnd = std::find(m_vColumns.begin(), m_vColumns.end(), strColumnName);
+	if(iterFnd == m_vColumns.end())
+	{
+		if(bAdd)
+			return AddColumn(strColumnName);
+
+		THROW_CORE_EXCEPTION(eErr_InvalidData);
+	}
+
+	std::vector<TString>::const_iterator iterBegin = m_vColumns.begin();
+	return std::distance(iterBegin, iterFnd);
+}
+
+TString TSQLiteColumnDefinition::GetColumnName(size_t stIndex) const
+{
+	return m_vColumns.at(stIndex);
+}
+
+END_CHCORE_NAMESPACE
Index: src/libchcore/TSQLiteColumnDefinition.h
===================================================================
diff -u
--- src/libchcore/TSQLiteColumnDefinition.h	(revision 0)
+++ src/libchcore/TSQLiteColumnDefinition.h	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,51 @@
+// ============================================================================
+//  Copyright (C) 2001-2014 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#ifndef __TSQLITECOLUMNDEFINITION_H__
+#define __TSQLITECOLUMNDEFINITION_H__
+
+#include "libchcore.h"
+#include "TString.h"
+#include <vector>
+
+BEGIN_CHCORE_NAMESPACE
+
+class LIBCHCORE_API TSQLiteColumnDefinition
+{
+public:
+	TSQLiteColumnDefinition();
+	~TSQLiteColumnDefinition();
+
+	size_t AddColumn(const TString& strColumnName);
+	void Clear();
+
+	size_t GetColumnIndex(const TString& strColumnName, bool bAdd = true);
+	TString GetColumnName(size_t stIndex) const;
+
+private:
+#pragma warning(push)
+#pragma warning(disable: 4251)
+	std::vector<TString> m_vColumns;
+#pragma warning(pop)
+};
+
+typedef boost::shared_ptr<TSQLiteColumnDefinition> TSQLiteColumnDefinitionPtr;
+
+END_CHCORE_NAMESPACE
+
+#endif
Index: src/libchcore/TSQLiteSerializer.cpp
===================================================================
diff -u
--- src/libchcore/TSQLiteSerializer.cpp	(revision 0)
+++ src/libchcore/TSQLiteSerializer.cpp	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,41 @@
+// ============================================================================
+//  Copyright (C) 2001-2013 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#include "stdafx.h"
+#include "TSQLiteSerializer.h"
+#include "TSQLiteSerializerContainer.h"
+
+BEGIN_CHCORE_NAMESPACE
+
+using namespace sqlite;
+
+TSQLiteSerializer::TSQLiteSerializer(const TSQLiteDatabasePtr& spDatabase) :
+	m_spDatabase(spDatabase)
+{
+}
+
+ISerializerContainerPtr TSQLiteSerializer::GetContainer(const TString& strContainerName)
+{
+	std::map<TString, ISerializerContainerPtr>::iterator iterMap = m_mapContainers.find(strContainerName);
+	if(iterMap == m_mapContainers.end())
+		iterMap = m_mapContainers.insert(std::make_pair(strContainerName, TSQLiteSerializerContainerPtr(new TSQLiteSerializerContainer))).first;
+
+	return iterMap->second;
+}
+
+END_CHCORE_NAMESPACE
Index: src/libchcore/TSQLiteSerializer.h
===================================================================
diff -u
--- src/libchcore/TSQLiteSerializer.h	(revision 0)
+++ src/libchcore/TSQLiteSerializer.h	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,50 @@
+// ============================================================================
+//  Copyright (C) 2001-2014 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#ifndef __TSQLITESERIALIZER_H__
+#define __TSQLITESERIALIZER_H__
+
+#include "libchcore.h"
+#include <map>
+#include "ISerializer.h"
+#include "TSQLiteDatabase.h"
+#include "TString.h"
+#include "ISerializerContainer.h"
+
+BEGIN_CHCORE_NAMESPACE
+
+class LIBCHCORE_API TSQLiteSerializer : public ISerializer
+{
+public:
+	TSQLiteSerializer(const sqlite::TSQLiteDatabasePtr& spDatabase);
+
+	ISerializerContainerPtr GetContainer(const TString& strContainerName);
+
+private:
+#pragma warning(push)
+#pragma warning(disable: 4251)
+	sqlite::TSQLiteDatabasePtr m_spDatabase;
+	std::map<TString, ISerializerContainerPtr> m_mapContainers;
+#pragma warning(pop)
+};
+
+typedef boost::shared_ptr<TSQLiteSerializer> TSQLiteSerializerPtr;
+
+END_CHCORE_NAMESPACE
+
+#endif
Index: src/libchcore/TSQLiteSerializerContainer.cpp
===================================================================
diff -u
--- src/libchcore/TSQLiteSerializerContainer.cpp	(revision 0)
+++ src/libchcore/TSQLiteSerializerContainer.cpp	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,62 @@
+// ============================================================================
+//  Copyright (C) 2001-2013 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#include "stdafx.h"
+#include "TSQLiteSerializerContainer.h"
+#include "TSQLiteSerializerRow.h"
+
+BEGIN_CHCORE_NAMESPACE
+
+TSQLiteSerializerContainer::TSQLiteSerializerContainer() :
+	m_spColumns(new TSQLiteColumnDefinition)
+{
+}
+
+TSQLiteSerializerContainer::TSQLiteSerializerContainer(size_t stParentID) :
+	m_stParentID(stParentID),
+	m_spColumns(new TSQLiteColumnDefinition)
+{
+}
+
+TSQLiteSerializerContainer::~TSQLiteSerializerContainer()
+{
+}
+
+chcore::ISerializerRowPtr TSQLiteSerializerContainer::GetNewRow()
+{
+	size_t stNewIndex = 0;
+
+	if(m_mapRows.rbegin() != m_mapRows.rend())
+	{
+		stNewIndex = m_mapRows.rbegin()->first + 1;
+	}
+
+	std::map<size_t, ISerializerRowPtr>::iterator iterInsert = m_mapRows.insert(std::make_pair(stNewIndex, TSQLiteSerializerRowPtr(new TSQLiteSerializerRow(stNewIndex, m_spColumns)))).first;
+	return (*iterInsert).second;
+}
+
+ISerializerRowPtr TSQLiteSerializerContainer::GetRow(size_t stRowID)
+{
+	std::map<size_t, ISerializerRowPtr>::iterator iterFnd = m_mapRows.find(stRowID);
+	if(iterFnd == m_mapRows.end())
+		iterFnd = m_mapRows.insert(std::make_pair(stRowID, ISerializerRowPtr(new TSQLiteSerializerRow(stRowID, m_spColumns)))).first;
+
+	return (*iterFnd).second;
+}
+
+END_CHCORE_NAMESPACE
Index: src/libchcore/TSQLiteSerializerContainer.h
===================================================================
diff -u
--- src/libchcore/TSQLiteSerializerContainer.h	(revision 0)
+++ src/libchcore/TSQLiteSerializerContainer.h	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,54 @@
+// ============================================================================
+//  Copyright (C) 2001-2014 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#ifndef __TSQLITESERIALIZERCONTAINER_H__
+#define __TSQLITESERIALIZERCONTAINER_H__
+
+#include "libchcore.h"
+#include "ISerializerRow.h"
+#include "ISerializerContainer.h"
+#include <map>
+#include <boost/optional.hpp>
+#include "TSQLiteColumnDefinition.h"
+
+BEGIN_CHCORE_NAMESPACE
+
+class LIBCHCORE_API TSQLiteSerializerContainer : public ISerializerContainer
+{
+public:
+	TSQLiteSerializerContainer();
+	TSQLiteSerializerContainer(size_t stParentID);
+	virtual ~TSQLiteSerializerContainer();
+
+	ISerializerRowPtr GetNewRow();
+	ISerializerRowPtr GetRow(size_t stRowID);
+
+private:
+#pragma warning(push)
+#pragma warning(disable: 4251)
+	std::map<size_t, ISerializerRowPtr> m_mapRows;
+	boost::optional<size_t> m_stParentID;
+	TSQLiteColumnDefinitionPtr m_spColumns;
+#pragma warning(pop)
+};
+
+typedef boost::shared_ptr<TSQLiteSerializerContainer> TSQLiteSerializerContainerPtr;
+
+END_CHCORE_NAMESPACE
+
+#endif
Index: src/libchcore/TSQLiteSerializerRow.cpp
===================================================================
diff -u
--- src/libchcore/TSQLiteSerializerRow.cpp	(revision 0)
+++ src/libchcore/TSQLiteSerializerRow.cpp	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,52 @@
+// ============================================================================
+//  Copyright (C) 2001-2013 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#include "stdafx.h"
+#include "TSQLiteSerializerRow.h"
+#include "TSQLiteSerializerContainer.h"
+
+BEGIN_CHCORE_NAMESPACE
+
+TSQLiteSerializerRow::TSQLiteSerializerRow(size_t stRowID, const TSQLiteColumnDefinitionPtr& spColumnDefinition) :
+	m_stRowID(stRowID),
+	m_spColumns(spColumnDefinition)
+{
+}
+
+TSQLiteSerializerRow::~TSQLiteSerializerRow()
+{
+}
+
+ISerializerContainerPtr TSQLiteSerializerRow::GetContainer()
+{
+	return ISerializerContainerPtr(new TSQLiteSerializerContainer(m_stRowID));
+}
+
+ISerializerRow& TSQLiteSerializerRow::operator%(const TRowData& rData)
+{
+	size_t stColumn = m_spColumns->GetColumnIndex(rData.m_strColName);
+	std::map<size_t, TRowData::InternalVariant>::iterator iterFnd = m_mapValues.find(stColumn);
+	if(iterFnd == m_mapValues.end())
+		m_mapValues.insert(std::make_pair(stColumn, rData.m_varValue));
+	else
+		(*iterFnd).second = rData.m_varValue;
+
+	return *this;
+}
+
+END_CHCORE_NAMESPACE
Index: src/libchcore/TSQLiteSerializerRow.h
===================================================================
diff -u
--- src/libchcore/TSQLiteSerializerRow.h	(revision 0)
+++ src/libchcore/TSQLiteSerializerRow.h	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -0,0 +1,53 @@
+// ============================================================================
+//  Copyright (C) 2001-2014 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#ifndef __TSQLITESERIALIZERROW_H__
+#define __TSQLITESERIALIZERROW_H__
+
+#include "libchcore.h"
+#include "ISerializerRow.h"
+#include "TSQLiteColumnDefinition.h"
+#include "ISerializerContainer.h"
+#include "TRowData.h"
+
+BEGIN_CHCORE_NAMESPACE
+
+class LIBCHCORE_API TSQLiteSerializerRow : public ISerializerRow
+{
+public:
+	TSQLiteSerializerRow(size_t stRowID, const TSQLiteColumnDefinitionPtr& spColumnDefinition);
+	virtual ~TSQLiteSerializerRow();
+
+	ISerializerContainerPtr GetContainer();
+
+	ISerializerRow& operator%(const TRowData& rData);
+
+private:
+	size_t m_stRowID;
+#pragma warning(push)
+#pragma warning(disable: 4251)
+	TSQLiteColumnDefinitionPtr m_spColumns;
+	std::map<size_t, TRowData::InternalVariant> m_mapValues;
+#pragma warning(pop)
+};
+
+typedef boost::shared_ptr<TSQLiteSerializerRow> TSQLiteSerializerRowPtr;
+
+END_CHCORE_NAMESPACE
+
+#endif
Index: src/libchcore/libchcore.vc90.vcproj
===================================================================
diff -u -rb1ecc12ba4c1f2a7b4acd6e82fc4193535e55ff0 -r4a7f28238afbf60b9e3f3daeffe590ff1638ec74
--- src/libchcore/libchcore.vc90.vcproj	(.../libchcore.vc90.vcproj)	(revision b1ecc12ba4c1f2a7b4acd6e82fc4193535e55ff0)
+++ src/libchcore/libchcore.vc90.vcproj	(.../libchcore.vc90.vcproj)	(revision 4a7f28238afbf60b9e3f3daeffe590ff1638ec74)
@@ -1276,6 +1276,30 @@
 				Name="Serialization"
 				>
 				<File
+					RelativePath=".\ISerializer.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\ISerializer.h"
+					>
+				</File>
+				<File
+					RelativePath=".\ISerializerContainer.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\ISerializerContainer.h"
+					>
+				</File>
+				<File
+					RelativePath=".\ISerializerRow.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\ISerializerRow.h"
+					>
+				</File>
+				<File
 					RelativePath=".\ITaskManagerSerializer.h"
 					>
 				</File>
@@ -1295,6 +1319,14 @@
 					Name="SQLite"
 					>
 					<File
+						RelativePath=".\TRowData.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\TRowData.h"
+						>
+					</File>
+					<File
 						RelativePath=".\TSerializerVersion.cpp"
 						>
 					</File>
@@ -1303,6 +1335,42 @@
 						>
 					</File>
 					<File
+						RelativePath=".\TSQLiteColumnDefinition.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\TSQLiteColumnDefinition.h"
+						>
+					</File>
+					<File
+						RelativePath=".\TSQLiteSerializer.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\TSQLiteSerializer.h"
+						>
+					</File>
+					<File
+						RelativePath=".\TSQLiteSerializerContainer.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\TSQLiteSerializerContainer.h"
+						>
+					</File>
+					<File
+						RelativePath=".\TSQLiteSerializerRow.cpp"
+						>
+					</File>
+					<File
+						RelativePath=".\TSQLiteSerializerRow.h"
+						>
+					</File>
+				</Filter>
+				<Filter
+					Name="Schemas"
+					>
+					<File
 						RelativePath=".\TTaskManagerSerializer.cpp"
 						>
 					</File>