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 14 years ago

Closed 14 years ago

#538 closed doubt (fixed)

Método para eliminar un dataset de un repositorio

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

Description

Hola, me parece lógico que exista un método para eliminar un dataset de un repositorio, opuesto al Save_AtRepository.
Podría llamarse Remove_FromRepository; os paso un código que hace eso, por si es útil:

Real Remove_FromRepository(NameBlock dataSet, NameBlock repository, Text type)
{
  Text repName = repository::GetConnection(?);
  Set dataSet_Info =
  [[
    Text name = dataSet::GetName(?);
    Text version = dataSet::GetVersion(?)
  ]];
  Real (MMS::Container::GetRepository(repName))::RemoveDataSet(dataSet_Info)
};

Una pregunta: ¿por qué Save_AtRepository devuelve 0 cuando logra guardar el objeto, y RemoveDataSet devuelve 1 cuando lo borra?

Gracias.
Un saludo.

Change History (5)

comment:1 Changed 14 years ago by Pedro Gea

Component: GeneralPersistence
Milestone: Release 0.6
Status: newaccepted
Type: defectdoubt
version: 0.6

El método que indicas parece algo retorcido, podría hacerse simplemente:

Real repository::RemoveDataSet(dataSet::GetIdentifier(?));

Como parece intuitivo el método para eliminar un objeto de un repositorio es un método del repositorio que recibe como argumento al "objeto" y no un método del objeto que recibe como argumento al repositorio. Sin embargo trasponer esto es fácil.

comment:2 Changed 14 years ago by Pedro Gea

(In [2293]) Se elimina un objeto de los catálogos del repositorio cuando se elimina el objeto.
Refs #538

comment:3 Changed 14 years ago by Pedro Gea

(In [2294]) Se devuelve 1 en la salida del método SaveObject.
Refs #538

comment:4 Changed 14 years ago by Pedro Gea

Respecto a la salida de tipo Real de los métodos de MMS no hay un criterio bien definido y por tanto no se ha revisado con cuidado.
Habitualmente se devuelve un 1 cuando ha tenido éxito y 0 cuando no. He "corregido" esta situación en el ejemplo que indicas aunque para revisar este tipo de salidas creo un tique nuevo: #539

comment:5 Changed 14 years ago by Pedro Gea

Resolution: fixed
Status: acceptedclosed
Note: See TracTickets for help on using tickets.