FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
CommitRetaining con IBX
Hola a todos!
Mi duda es la siguiente: Trabajo con componentes IBDataset. Tengo un programa donde se carga una factura, se graba, y luego se imprime. Al grabarse cierro la transacción con Commit, esto hace que se me cierren todos los IBDatasets y al querer imprimir ya no poseo la información. Una solución a esto es antes de imprimir volver a abrir todos los IBDatasets y posicionarme en los registros correspondientes mediante Locate o bookmarks. Otra solución sería hacer Commitretaining en lugar de Commit; mi duda surge aquí, pues no tengo experiencia en el uso de este método. He estado leyendo un poco acerca de esto y no aconsejan usarlo porque van quedando las distintas versiones de los registros y afecta el rendimiento del sistema. Por otro lado, como se maneja el mismo contexto de la transacción, la vista de la base de datos es siempre la misma, es decir que no vería los cambios que realicen otras transacciones concurrentes (esto es según lo que interpreté de un artículo que leí). Alguien puede darme una sugerencia? Desde ya muchas gracias. Marina |
#2
|
||||
|
||||
Hola,
Cita:
Cita:
Saludos. |
#3
|
|||
|
|||
Gracias Kinobi por tu aclaración con respecto a mis dudas.
Lo que realmente quiero saber es cada cuanto tiempo será necesario realizar el backup-restore. Tené en cuenta que se trate de un comercio que realiza muchas facturas por día. Marina |
#4
|
||||
|
||||
Hola,
Cita:
Cita:
Saludos. |
#5
|
|||
|
|||
Disculpen mi ignorancia, pero si por ejemplo yo conecto la base de datos en el OnCreate del módulo de datos y la desconecto en el OnDestroy, no se puede realizar el backup y el restore en forma automática.
Muchas gracias por todo. |
#6
|
||||
|
||||
Hola,
sí es posible. Si estamos hablando de Delphi e IBX, nada más fácil que utilizar los componentes TIBBackupService y TIBRestoreService. Ahora bien, ¿estás seguro que éso es lo que quieres?. Imagina a un usuario que ejecute tu aplicación cinco, diez, veinte, cien, ..., veces seguidas. Habrás lanzado tantas veces el proceso de backup (y/o restore) innecesariamente. Además, existe otro problema, según que sistema operativo se esté utilizando, puede ser necesario tener permisos especiales para hacer el proceso. Los procesos "automáticos" de ese tipo, mejor hacerlos con alguna utilidad del sistema. Saludos. |
#7
|
|||
|
|||
Oigan, antes que todo, saludos.
Lo que pasa es que me gustaría que me ampliaran más eso de las inconveniencias que genera el commitretaining, ya que yo lo utilizo bastante en las aplicaciones que hago a fin de no perder los datos con los que estoy trabajando y no tener que volver a cerrar y a abrir la tabla(o a refrescarla, según sea el caso). ¿Quieren decir que no es conveniente utilizarlo? Y otra pregunta :¿Para qué usar el método de bakup y restore? Según lo que entendí de lo que escribieron anteriormente, cuando utilizas el commit retaining pasa algo que se soluciona usando el bakup o el restore. ¿Entendí bien, o me fui de filo? ¿Dónde podría encontrar más información sobre la manera en que funciona el commitretaining y en general, el funcionamiento de Interbase? ya que lo que comentó kinobi es que Interbase utiliza una arquitectura multi generacional, que según tengo entendido, también es utilizada por postgresql. Ojalá me puedan responder pronto, pues francamente lo que leí en este hilo me confundió un poco(acabo de pasar la etapa de confundirte con los niveles de aislamiento de las transacciones, je je). Muchas gracias de antemano y hasta pronto. |
#8
|
||||
|
||||
Hola,
Cita:
Saludos. |
|
|
|