Index: src/libchcore/TTaskBaseData.cpp =================================================================== diff -u -N -r081055369d6b332ef1651877756657973b1b2d9c -rfc67a825635691930b3ac00dc95b16e59f3d2fae --- src/libchcore/TTaskBaseData.cpp (.../TTaskBaseData.cpp) (revision 081055369d6b332ef1651877756657973b1b2d9c) +++ src/libchcore/TTaskBaseData.cpp (.../TTaskBaseData.cpp) (revision fc67a825635691930b3ac00dc95b16e59f3d2fae) @@ -80,6 +80,8 @@ void TTaskBaseData::Store(const ISerializerContainerPtr& spContainer) const { + InitColumns(spContainer); + ISerializerRowDataPtr spRow; // base data @@ -110,12 +112,10 @@ void TTaskBaseData::Load(const ISerializerContainerPtr& spContainer) { + InitColumns(spContainer); + ISerializerRowReaderPtr spRowReader = spContainer->GetRowReader(); - IColumnsDefinition& rColumns = spRowReader->GetColumnsDefinitions(); - if(rColumns.IsEmpty()) - rColumns % _T("name") % _T("log_path") % _T("current_state") % _T("destination_path"); - bool bResult = spRowReader->Next(); if(bResult) { @@ -130,4 +130,16 @@ m_setChanges.reset(); } +void TTaskBaseData::InitColumns(const ISerializerContainerPtr& spContainer) const +{ + IColumnsDefinition& rColumns = spContainer->GetColumnsDefinition(); + if(rColumns.IsEmpty()) + { + rColumns.AddColumn(_T("name"), IColumnsDefinition::eType_string); + rColumns.AddColumn(_T("log_path"), IColumnsDefinition::eType_string); + rColumns.AddColumn(_T("current_state"), IColumnsDefinition::eType_int); + rColumns.AddColumn(_T("destination_path"), IColumnsDefinition::eType_path); + } +} + END_CHCORE_NAMESPACE