Hola a todos,
Estoy haciendo mis pinitos con BBDD desde Smalltalk, y me estoy haciendo un cacao de cuidado. Me gustaría exponeros el ejemplo que he creado, para ver si voy encaminado o qué estoy haciendo mal, porque..no lo veo.... (hablo de memoria, no estoy en casa ahora mismo) Tengo un Objecto Factoría, que contiene dos variables de instancia. conexion y usuarios Al crear la instancia de Factoría, ésta, crea un objeto DBXConnection y lo asigna a la instvar conexion. Factoría, tiene un método de instancia nuevoUsuarioID: unID conNombre: unNombre apellidos: unApellido Cuando éste método es llamado, hace un self conexion connectAndOpen. self conexion execute: 'insert into usuarios(id_usuario, nombre, apellidos) values(',unID,',','''',unNombre,'''',',','''',unApellido,''')'. self conexion disconnect. Independientemetne de los errores que me dió, y que no paré a mirar correctamente, debido a la hora que era, me dá la sensación, basándome en todo lo visto hasta ahora en SMalltalk, una solución elegante. Ésta es la manera correcta? En los ejemplos de SqueakDBX, son sentencias sueltas, y no me sirven como ejemplos para aplicar a un modelo real. Luego tengo muchas dudas, qué pasa cuando cierro la imágen? cuando recupera las datos? etc..etc..etc.. pero las dudas deben ir en orden.. Según los consejos de Germán, descargué SmallPOS, que no he hecho funcionar ahora porque depende de SPStandardFiles que no encuentro aún donde está esa clase, ya que usa SqueakDBX si no recuerdo mal, para ver como trabajar ese paquete la persistencia, pero me tiré más de una hora, sólo para instalar Seaside30 y demás dependencias, para que no terminara de cuajar de todas maneras. Un saludo y mil gracias. |
Hola Giuseppe,
así rápido (no tengo mucho tiempo, disculpas): lo que estas haciendo funciona, pero es muy ineficiente (estas abriendo una conexión cada ves que vas a ir a la base de datos). Lo más razonable es que hagas #openAndConnect una sola vez y mantengas la conexion abierta mientras tu aplicación esté corriendo. Otra cosa, si vas a a hacer una aplicación web, tal vez en lugar de abrir una sola conexión te sirva usar un pool de conexiones (dbxtalk tiene uno que se puede usar). De cualquier forma, eso se puede resolver más adelante, no hay ninguna necesidad de preocuparse ahora mismo :) saludos, Esteban El 04/07/2011, a las 7:35a.m., Giuseppe Luigi escribió: > Hola a todos, > > Estoy haciendo mis pinitos con BBDD desde Smalltalk, y me estoy haciendo > un cacao de cuidado. Me gustaría exponeros el ejemplo que he creado, > para ver si voy encaminado o qué estoy haciendo mal, porque..no lo > veo.... (hablo de memoria, no estoy en casa ahora mismo) > > Tengo un Objecto Factoría, que contiene dos variables de instancia. > conexion y usuarios > > Al crear la instancia de Factoría, ésta, crea un objeto DBXConnection y > lo asigna a la instvar conexion. > Factoría, tiene un método de instancia > nuevoUsuarioID: unID conNombre: unNombre apellidos: unApellido > > Cuando éste método es llamado, hace un > self conexion connectAndOpen. > self conexion execute: 'insert into usuarios(id_usuario, nombre, > apellidos) > values(',unID,',','''',unNombre,'''',',','''',unApellido,''')'. > self conexion disconnect. > > Independientemetne de los errores que me dió, y que no paré a mirar > correctamente, debido a la hora que era, me dá la sensación, basándome > en todo lo visto hasta ahora en SMalltalk, una solución elegante. > > Ésta es la manera correcta? > > En los ejemplos de SqueakDBX, son sentencias sueltas, y no me sirven > como ejemplos para aplicar a un modelo real. Luego tengo muchas dudas, > qué pasa cuando cierro la imágen? cuando recupera las datos? > etc..etc..etc.. pero las dudas deben ir en orden.. > > Según los consejos de Germán, descargué SmallPOS, que no he hecho > funcionar ahora porque depende de SPStandardFiles que no encuentro aún > donde está esa clase, ya que usa SqueakDBX si no recuerdo mal, para ver > como trabajar ese paquete la persistencia, pero me tiré más de una hora, > sólo para instalar Seaside30 y demás dependencias, para que no terminara > de cuajar de todas maneras. > > Un saludo y mil gracias. > > |
El lun, 04-07-2011 a las 09:34 -0300, Esteban Lorenzano escribió:
> > Hola Giuseppe, > > así rápido (no tengo mucho tiempo, disculpas): lo que estas haciendo > funciona, pero es muy ineficiente (estas abriendo una conexión cada > ves que vas a ir a la base de datos). Lo más razonable es que hagas > #openAndConnect una sola vez y mantengas la conexion abierta mientras > tu aplicación esté corriendo. Si, también es verdad, es la manía de trabajar con terminales que no estén online continuamente, pero trabajen con bases de datos remotas. > Otra cosa, si vas a a hacer una aplicación web, tal vez en lugar de > abrir una sola conexión te sirva usar un pool de conexiones (dbxtalk > tiene uno que se puede usar). De cualquier forma, eso se puede > resolver más adelante, no hay ninguna necesidad de preocuparse ahora > mismo :) Aham, intentaré investigar que es eso de los pools :P Lo que más me preocupa, es la metodología correcta de trabajo de los objetos a la hora de persistir, Quien debe persistir, cuando cargo la información, donde, etc.... es decir, si el objeto factoría, tiene una instvar usuarios, esa instvar usuarios, sería, una colección de objetos Usuario, creada a partir del Select, correcto?, es decir, cada vez que llamara a usuarios, tendría que hacer la consulta, y recrear la colección? pero qué pasa entonces con esos datos cuando la petición la hace otro navegador? Trabajando con persistencia en la imágen lo entiendo, porque los datos ya están ahí, al cerrar abrir la imágen, los datos no se van a ningún sitio...es estando en la BBDD donde me hago un lío. Siento las preguntas novatas, pero no estoy acostumbrado a este tipo de metodología, y no encuentro un caso real que usar como ejemplo. Es cuestión de conseguir cambiar el chip, y todo irá sobre ruedas :D |
Free forum by Nabble | Edit this page |