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. -~----------~----~----~----~------~----~------~--~---
