Gracias Gallego, voy a intentar con esta solución hasta ganar un poco
más de experiencia.

On 11/3/06, GallegO <[EMAIL PROTECTED]> wrote:
> Chiara,
> te mando una clase que recorté de la aplicación que estaba haciendo. Para
> orientarte, la aplicacion era muy pequeña, me pagaban bastante poco (de
> hecho aún no la cobre :p) y tenia que resolverlo rápido, asi que por
> experiencia sabiendo que el tema da para largo y muchas vueltas implemente
> algo rapido y sucio. Primero hice el sistema guardando todo en un singleton,
> de ahi viene XxxxSystem (reemplaza Xxxx por lo que vos quieras) y luego del
> lado de clase le agregue al Singleton lo minimo que necesitaba para
> persistir en Omnibase y ya te daras cuenta que quiero decir con mínimo, casi
> nada !!
>
> Como veras haciendo:
>
> XxxxSystem dbInstancesOf: aClass
> obtenes el PersistentDictionary con las instancias de esa clase que
> guardaste anteriormente.
> Los PersistentDictionary se marcan como dirty apenas agregas algo asi que no
> necesitas hacer mas nada, agregas la instancia y listo. Proba a hacer
> Omnibase checkpoint y ver si todo sigue andando...
>
> Para cerrar la base de datos antes de salir de la aplicacion uso algo asi
> (ahora que lo pienso estas usando VW, el código que pongo el el manejador
> del evento cuando el usuario trató de cerrar la aplicación):
>
>  onCloseRequested: valueHolder
>     "Default handler for a close request event. Pass on to the view"
>
>     self queryExitApplication ifFalse: [^valueHolder value: false].
>
>     ["pones lo que quieras aca"
>     OmniBase currentTransactionOrNil ifNotNil: [OmniBase commit].
>     XxxxSystem closeDatabase.
>     " y pones lo que quieras aca tambien"]
>             on: Error
>             do: [:ex | SessionManager isRuntime not ifTrue: [ex pass]]
>
> -------------------------------------------------------------------------------------------------------
>
> Cualquier duda o consulta no dudes en hacerla, espero haber ayudado.
>
> Saludos
>   GallegO
>
>
> El día 3/11/06, GallegO <[EMAIL PROTECTED]> escribió:
> >
> > Chiara escribió:
> > [snip]
> > > Mi sistema esta distribuido con Opentalk y la imagen servidor es la
> > > que hace el acceso a BD por lo que es una sola imagen la que la accede
> > > así que podría servir esta alternativa.
> > > El inconveniente que veo en esta alternativa es que ante posibles
> > > errores se perdería toda la jornada laboral de un usuario y podría
> >
> > Como te comentaba Facundo, enviando #checkpoint a la transacción vas
> > persistiendo los cambios parciales. (Hay que ver hasta donde escala esto
> > y la seguridad, pero para comenzar esta buenisimo)
> >
> > > quedar la BD inconsistente por esto es que me resultaría útil el uso
> > > de transacciones aunque no sería muy crítico (al menos no en esta
> > > etapa) y podría agregar el manejo de transacciones cuando tenga un
> > > poco más de experiencia con Omnibase.
> >
> > Exacto!! Una vez que vas viendo que podes guardar objetos vas imaginando
> > y haciendo un camino a tu propia solución sobre eso.
> > >
> > > Igualmente si podes mandarme el ejemplo estaría bueno para verlo.
> >
> > Al llegar a casa te lo mando o lo posteo aca.
> >
> > Saludos
> >    GallegO
> >
> >
> >
> > > >
> >
>
>


-- 
Saludos Chiara

"Peace cannot be kept by force; it can only be achieved by understanding."
Albert Einstein

--~--~---------~--~----~------------~-------~--~----~
  Ha recibido este mensaje porque está suscrito a Grupo "clubSmalltalk" de 
Grupos de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a [email protected]
 Para anular la suscripción a este grupo, envíe un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups-beta.google.com/group/clubSmalltalk?hl=es.

-~----------~----~----~----~------~----~------~--~---

Responder a