close Warning: Can't synchronize with repository "(default)" (/var/svn/mms does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 13 years ago

Last modified 13 years ago

#902 closed doubt

Guadado de Data Set — at Initial Version

Reported by: mruiz Owned by: Pedro Gea
Priority: major Milestone: Release 0.6
Component: Persistence Keywords:
Cc:

Description

Hola,
tengo dos conjunto de data set con nombres iguales, con diferentes versiones (1.0 y 2.0), que quiero juntar en un solo data set (cada conjunto), de forma que tenga 2 data set.
La secuencia es la siguiente:

Seleccionamos los datas set que queremos juntar de una versión:
Set sCatDS_Repo = Select(OptCob.Repo::GetDataSetsCatalog(?),
Real(NameBlock c)
{

And(TextFind(c::name, sPortTxt),

TextFind(c::name, "Row"),
Not(TextFind(c::name, "Cov")),
Not(TextFind(c::name, "All")),
Not(TextFind(c::name, "Hou")),
(c::version == DS.Version))

});

Cargamos el primer DataSet
NameBlock ds_1 = MMS::Container::GetObject_Load(
"DataSet",
[[

Text DataSetName = (sCatDS_Repo[1])::name,
Text DataSetVersion = (sCatDS_Repo[1])::version

]],
OptCob.Repo);
Text nameDs1 = ds_1::GetIdentifier(?);

Hacemos una copia para usarlo como DataSet 'Padre'
NameBlock dsFat = ds_1::Duplicate(?);
Text nameDsFat = Sub(nameDs1, 1, TextFind(nameDs1, "Row")-1)+"All";
Real posRow = TextFind(nameDs1, "Row");
Text nameDsFat = Sub(nameDs1, 1, posRow+3) +"All";_Cov.All;Revisar
Real existDS = OptCob.Repo::FindDataSet(nameDsFat);
Real If(Not(existDS), -1, OptCob.Repo::RemoveDataSet(nameDsFat));
Real dsFat::SetName(nameDsFat);

Vamos uniendo el resto de DataSets al 'Padre'
Set sJoin = For(2, Card(sCatDS_Repo), Real(Real n)
{

Real n = 2;
NameBlock dsSne = sCatDS_Repo[n];
Text dsName = dsSne::name;
Text dsVer = dsSne::version;
WriteLn("\tAñadiendo el DataSet "+ dsName +"...\t"+ Time);


Set sInfoDSn =
[[

Text DataSetName = dsName,
Text DataSetVersion = dsVer de momento el DS es siempre v1.0.

]];
NameBlock ds_n = MMS::Container::GetObject_Load("DataSet", sInfoDSn,

OptCob.Repo);

Real join = dsFat::JoinDataSet(ds_n);
Real dsFat::SetAttribute("_cov", "All");
Real MMS::Container::RemoveDataSet(sInfoDSn);
join

});
Real dsFat::SetAttribute("_row", "All");

Text ver = dsFat::GetVersion(?);

WriteLn("Guardando el DataSet padre ("+ nameDsFat +")...\t"+ Time);
Real save = dsFat::Save_AtRepository(OptCob.Repo, "Default");

con esto tendríamos el data set padre de una versión.
Si repetimos este proceso para la segunda versión, cuando hace SAve_AtRepository guarda el data set padre con la segunda versión pero desaparece el de la primera versión.
Si volvemos a repetir este proceso con la primera versión de data set, al guardar el padre desaparece la 2 versión.
Es como si al tener el mismo nombre machacase la versión anterior y le pusiese la nueva versión.

Saludos

Change History (0)

Note: See TracTickets for help on using tickets.