Opened 13 years ago
Last modified 13 years ago
#823 new enhancement
Acceso a un DataSet del repositorio a partir de un atributo
Reported by: | imendez | Owned by: | Pedro Gea |
---|---|---|---|
Priority: | major | Milestone: | Next |
Component: | Persistence | Keywords: | |
Cc: |
Description
Hola, tengo una duda:
La manera que yo conozco de cargar un DataSet de un repositorio es por su nombre y versión:
NameBlock ds = MMS::Container::GetObject_Load( "DataSet", [[ Text DataSetName = "XXX", Text DataSetVersion = 1.0 ]], Repositorio);
¿Se puede hacer lo mismo pero con cualquier otro atributo? Algo tipo:
NameBlock ds2 = MMS::Container::GetObject_Load( "DataSet", [[ Text _.por = "CrCa", Text _.vir = "N" ]], Repositorio);
Tengo un DataSet que tiene esos atributos, pero obtengo un error:
Warning: [26] [@MainContainer$GetObject_Load] No se ha encontrado el objeto '[[ "CrCa", "N"]]' (DataSet). ERROR: [65] Fallo en la función "GetObject_Load" [Call stack] [1] NameBlock MMS::Container::Container::GetObject_Load (Text subclass, Anything info, Anything where) Warning: [27] La función :: ha fallado en : MMS::Container::GetObject_Load("DataSet", SetOfAnything(Text _.por="CrCa", Text _.vir="N"), OptCob.Repo) ERROR: [66] ds2 no se pudo crear.
Si no se puede hacer, creo que sería una buena mejora.
Gracias, un saludo.
Change History (2)
comment:1 Changed 13 years ago by
Milestone: | → Release 0.6 |
---|---|
Type: | doubt → enhancement |
version: | → 0.6 |
comment:2 Changed 13 years ago by
Para intentar reproducir el mecanismo de carga solicitado puede hacerse algo como:
Text objectType = ...; // Ej. "DataSet" MMS::@Repository repository = ...; // Ej. MMS::Network::GetRepository(1) Text attributeName = ...; // Ej. "_.por" Text attributeValue = ...; // Ej. "CrCa" Set selection = Select(repository::GetObjectsCatalog(objectType), Real (NameBlock ne) { Text title = getOptArg(ne::attributes, attributeName , ""); title == attributeValue }); Anything If(Card(selection), { NameBlock ne = selection[1]; repository::LoadObject(objectType, [[ne::name, ne::version]]) });
Note: See
TracTickets for help on using
tickets.
Los mecanismos de carga necesitan recibir el nombre o el identificador del objeto, o en su defecto un conjunto (
Set
) con el par nombre-versión (en ese orden), de modo que no se pueden usar los atributos para ello.