![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
¿Qué para esto ne te sirven las transacciones? Si algo falla se cancela la transacción y con ello todos los cambios que se hayan hecho.
// Saludos |
|
#2
|
||||
|
||||
|
Cita:
Estoy hablando de un proceso que puede tardar minutos en completarse, creo que eso va en contra del concepto de transacción... O por lo menos a mí no me acaba de convencer tener una transacción abierta durante tanto tiempo. |
|
#3
|
||||
|
||||
|
Hola kuan-yiu!
Con respecto al tema de no tener tanto tiempo abierta una transacción, leí hace poco una solución propuesta por Lepe en este hilo que se refiere a los ClientsDataset con cacheUpdates (consigues el efecto que una tabla temporal). Te dejo un enlace con un ejemplo: ClientDataSet y DataSetProvider en aplicaciones cliente/servidor Saludos |
|
#4
|
||||
|
||||
|
Cita:
(Pero voy a tener que reescribir la mitad de la aplicación porque el que lo hizo ni usaba DataModule ni UpdateSQL ni nada de nada.) |
|
#5
|
||||
|
||||
|
Vamos a ver, que no soy experto en el tema así que más es pregunta que respuesta. ¿Exactamente, en este caso, cuál sería el problema de dejar una transacción abierta? No estamos hablando de dejar bloqueos de tablas activos. Dependiendo, según entiendo, del nivel de aislamiento de la transacción, los otros clientes pueden continuar su trabajo. Cualquier cosa que haya que deshacer con la transacción también ha de deshacerse con el uso de tablas temporales. No digo que no convenga usar ClientDataSets, y posiblemente sea lo más adecuado, pero tampoco me queda claro el porqué afecta una transacción abierta. Pero como dije, es más pregunta que respuesta.
// Saludos |
|
#6
|
||||
|
||||
|
Cita:
El problema radica, creo yo, en un mal diseño inicial de la aplicación que ahora está dando muchos fallos y tengo que remendar de algún modo (usa 6 formularios diferentes durante todo el proceso, muchos de ellos de consulta y hay decenas de lugares en los que puede cancelar el proceso a media grabación produciendo los más variados desastres). Así que lo que yo pretendo es unificar la grabación física en un único punto, al finalizar todo el proceso, para hacerla más robusta.Aunque tal vez esa tampoco sea la mejor solución. ![]() |
|
#7
|
||||
|
||||
|
Quizas por problemas de atomicidad... mientras esta el proceso otros pueden modificar los datos de base, lo que implica que para proteger el proceso se deberia de aislar la transaccion.
Si el proceso es de mucho tiempo, las transacciones no necesariamente es lo mejor.
__________________
El malabarista. |
|
#8
|
||||
|
||||
|
Entiendo esto, pero si el que otros usuarios hagan modificaciones durante la transacción es algo que pueda afectar en este caso, pues lo mismo sucedería con las tablas en memoria ¿no?
// Saludos |
|
#9
|
||||
|
||||
|
Cita:
... De todos modos voy a mirar a ver si aplicándolo parcialmente me sirve. |
|
#10
|
||||
|
||||
|
Cita:
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| trabajar con tablas temporales | reevil | MySQL | 1 | 15-05-2006 15:57:09 |
| Tablas Temporales MySQL y Vb6 | Payola2011 | Varios | 2 | 08-02-2006 20:52:04 |
| Tablas Temporales y Grids | Payola2011 | MySQL | 0 | 08-02-2006 20:28:15 |
| Query con tablas temporales | cartmanrules | Firebird e Interbase | 4 | 27-05-2004 10:23:47 |
| Tablas Temporales en Interbase 7 | bismarito | Firebird e Interbase | 5 | 02-10-2003 11:12:11 |
|