![]() |
Transactions Firebird
Hola a todos, gracias por su ayuda, Estoy desarrollando una aplicacion en Firebird 1.5, y he llegado al punto donde tengo que programar pensando en varias aplicaciones modificando la base de datos al mismo tiempo, bueno tengo el tipico problema ¿ que pasa cuando dos aplicaciones intentan modificar la base de datos al mismo tiempo ?
Tengo entendido que Todas las aplicaciones pueden Ejecutar una lectura al mismo tiempo sin problema, estoy bien ? el problema es que no todas pueden modificar al mismo tiempo, bueno la consulta es cual seria la forma de lograr esto, existe algun documento electronico en la red o que alguien pudiera mostrarme un codigo de ejemplo sencillo, actual mente estoy trabajando en Builder c++ 6.0, pero el codigo de ejemplo podria estar en Delphi tambien, espero haber sido claro con mi duda y muchas gracias por su ayuda. :confused: |
Cita:
Cita:
Cita:
Cuando una transacción modifica un registro, este queda bloqueado para cualquier otra transacción que intente modificarlo. El bloqueo es liberado cuando la transacción termina (con un commit o un rollback), por lo que conviene tener transacciones cortas en el tiempo. Si un programa inicia una transacción, modifica un registro, el usuario se va a tomar una taza de café y hacer la siesta, para luego regresar a modificar otro y hacer commit, todo se vuelve un caos. Para ello, es mejor mantener todas las modificaciones en memoria y luego enviarlas en un solo paso al servidor de base de datos. Existen varias técnicas para ellos, por ejemplo, podrías activar los cached updates o usar client datasets. Te dejo hasta aqui, que ni soy bueno redactando, ni quiero perderte en un tema que está bien documentado y del que seguramente encontrarás información de mejor calidad. Hasta luego. ;) |
Gracias
Muchas Gracias jachguate por tu respuesta, la verdad me ayudo mucho
y tienes razon no pasa nada cuando dos Transacciones Intentan modificar a un registro diferente, lo cual no es igual cuando intentan modificar al mismo registro. :) vbmenu_register("postmenu_128516", true); |
La franja horaria es GMT +2. Ahora son las 02:12:10. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi