FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
|||
|
|||
Gracias Agustín por tu respuesta y tus observaciones, las voy a tener en cuenta !!!
El tema del error es así, cuando graba el primero (de los dos usuarios con los que probé) sale todo bien, termina el proceso y cierra el formulario como se esperaba, pero cuando graba el otro, hace el ADOConection1.CommitTrans, dice que terminó el proceso, pero luego aparece el error: "Ha intentado confirmar o deshacer una transacción sin iniciar una antes"... |
#2
|
|||
|
|||
Cita:
Última edición por Neftali [Germán.Estévez] fecha: 27-02-2017 a las 08:47:21. Razón: Añadir TAG's |
#3
|
||||
|
||||
Para colocar TAG's al código revisa este enlace.
Te recomiendo también que revises la Guía de estilo de los foros, ya que eres nuevo por aquí. Un saludo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
Cita:
|
#5
|
||||
|
||||
Cita:
Para eso deberías "debuggar" el código e ir ejecutándolo línea a línea. Tal vez en algún otro evento que se lanza desde aquí, o en algún otro sitio se esté cerrando esa transacción.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. Última edición por Neftali [Germán.Estévez] fecha: 27-02-2017 a las 11:05:54. |
#6
|
||||
|
||||
No estoy de acuerdo con lo de preguntar por la transacción. De hacerlo habría que hacerlo antes porque ya modifico los datos de la BD fuera de una transacción y perdes la seguridad que te garantiza y la posibilidad de hacer rollback. Más bien lo justo sería abortar todo si falla el BeginTransaction
|
#7
|
||||
|
||||
Correcto, pero yo estaba pensando en el caso de que le funciona el Begin, pero le falle en Rollback o el Commit. Eso hay que controlarlo, sea con una excepción o preguntarlo antes.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
||||
|
||||
Cita:
La forma correcta de hacerlo es esta, y es universal para cualquier componente de acceso a datos (puede haber errores de sintaxis porque estoy escribiendo de memoria)
Es importantisimo que la sentencia que inicia la transaccion este fuera del bloque try, ya que si se pone dentro del try-except y la transaccion no puede iniciar, y se produce una excepcion por cualquier motivo, el flujo pasa al bloque except y ejecutariamos un Rollback cuando no hay ninguna transaccion Tambien el Commit suele ser la ultima sentencia del bloque try, aunque puede haber cosas despues de esto (como escribir en un log). Obviamente tiene que estar despues de realizar todas las inserciones, modificaciones, borrados, o ejecucion de cualquier SQL Y por ultimo el bloque except captura todas las excepciones, realiza el rollback correspondiente (ya que si entramos dentro del try se asegura que estamos en una transaccion) y luego vuelve a elevar la excepcion (no la oculta), para que se propague |
#9
|
|||
|
|||
Muchas Gracias por su tiempo y ayuda!!!
Otra pregunta (si suena a abuso avisen por favor...) si debiera mandarlo a una cola, o volver a intentarlo por que no se haya podido completar el proceso, ¿cómo sería la instrucción o el código? |
#10
|
|||
|
|||
Cita:
Gracias Bitbow, creo que con esto que decía Agustín funciona bien... Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error Interbase Access violation The code attempted to access a virtual | ryderMX | Firebird e Interbase | 3 | 21-11-2015 11:11:46 |
Ado y Access | jocey | Conexión con bases de datos | 2 | 25-02-2008 17:58:25 |
access con la pda | joel20 | Conexión con bases de datos | 0 | 08-01-2007 13:30:30 |
ado + access | gustavoh | Conexión con bases de datos | 3 | 03-10-2005 05:30:49 |
Access!! | PTW | Conexión con bases de datos | 5 | 15-04-2004 02:00:10 |
|