Opened 13 years ago
Last modified 13 years ago
#902 closed doubt
Guadado de Data Set — at Version 1
Reported by: | mruiz | Owned by: | Pedro Gea |
---|---|---|---|
Priority: | major | Milestone: | Release 0.6 |
Component: | Persistence | Keywords: | |
Cc: |
Description (last modified by )
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 (1)
comment:1 Changed 13 years ago by
Component: | General → Persistence |
---|---|
Description: | modified (diff) |
Milestone: | → Release 0.6 |
Status: | new → accepted |
Type: | defect → doubt |