como saber transacciones pendientes
Hola amigos....
Estoy investigando acerca de como saber que transacciones tengo pendientes, para notificarle al usuario que existen transacciones pendientes que no se han confirmado. Como hacer esto?, ....como saber si tengo transacciones pendientes? He visto en google acerca current_transaction....sigo investigando !!!... Saludos. |
Hola, no creo que sea práctico informar a un usuario de las transacciones pendientes, lo asustarás y no comprenderá nada.
En todo caso, si por ejemplo, el usuario está dando de alta un cliente y le da a "salir" sin haber "aceptado/guardado", sacar un aviso indicándoselo al usuario, el típico: "¿Salir sin guardar? --Sí-- --No-- Para ello sólo has de consultar la propiedad InTransaction del componente Transaction, algo así como:
|
Hola mRoman
No manejo hace mucho IB y estoy desactualizado pero entre los componentes de IB siempre hay un objeto de Transaccion (IBTransaction) con la propiedad InTransaction. Esta propiedad te permite saber si hay una transaccion pendiente y puedas realizar la acción necesaria. Cita:
Edito: Ya Casimiro te dió la misma respuesta :D |
Ok...les agradezco a ambos las respuestas que me dieron. Pondré en practica y luego les informo el resultado....
|
Hola mRoman.
Si tenes más de un IBTransaction que dependen de un IBDatabase y deseas trabajar con el conjunto de ellos, podes usar las propiedades TransactionCount y Transactions de este último componente. A modo de ejemplo, este código pone inactivos a todos los IBTransactions activos relacionados con un IBDatabase:
Saludos. |
En mi ver, lo mas prudente es que en una transaccion se compelete lo acometido o se haga roll-back.
Y con el cogigo no dar posibilidades de que haya transacciones pendientes. Aunque si la pregunta fuese del total de transacciones pendientes de TODOS los usuarios, creo que eso no se ha abordado en las respuestas. Y precisamente, por eso, es que cada usuario no pueda tener mas de una transaccion pendiente. Pero me gustaria saber de casos en los cuales se requiera eso. |
Les agradezco las respuestas de ecfisa, elmug y de casimiro asi como de movorack y comentarles que ya lo solucione gracias a sus comentarios, los cuales aplique y me queda con la sugerencia de casimiro. En realidad es mas sencillo de lo que propone ElMug, lo que realmente necesitaba era solamente "avisarle" al usuario que se estaba saliendo sin grabar los movimientos realizados.
Total....asi quedo:
Gracias a todos....Saludos ! |
Cita:
|
Uppss
jajaja....tienes razon !!!.....bueno, "Al mejor cazador se le va la liebre"....
entonces quedaria asi:
|
Tampoco puede ir ahí :)
Supongo que si pones Action := caFree; es porque ese form lo has creado tú en tiempo de ejecución y tienes que liberarlo, en caso contrario no hace falta. Pero de todas formas en ese código que has puesto, imagina que dsUnidadOperativa.Transaction.InTransaction es False, (que no hay ninguna transacción), ¿qué ocurriría?, que no se ejecutaría el Action := caFree; Por lo tanto, debes sacarlo fuera de ese condicionante.
|
Ok....casimiro....tienes razón....Gracias ! por el Tip !
|
Una consulta, que el IBTransaction tenga la propiedad DefaultAction en TACommit no es igual a un Commit automatico ?
Saludos |
La franja horaria es GMT +2. Ahora son las 00:55:05. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi