FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Problema con Try Except
Hola amigos de nuevo aquí con mis dudas pidiendo ayuda.
Resulta que en un bucle Try Except realizo varios post, pero el problema es que cuando falla algun post, resulta que los anteriores ya se han grabado en la BD. Mi pregunta es ¿en el bucle try, si falla algo, todo vuelve a su estado anterior? Uso Delphi 5 y tablas paradox. el código es el siguiente:
Muchas gracias por vuestra ayuda. |
#2
|
||||
|
||||
En un bucle Try .. Except, si se produce un error o excepción, el programa salta desde la línea que en ese momento se encuentre en ejecución, y en la cual se produzca el error, a la siguiente línea que aparezca después del Except.
Eso no significa para nada que las líneas anteriores no se hayan ejecutado y por lo tanto, si realizas Post estos sigan vigentes. Si lo que quieres es cancelar los Post realizados, deberás pensar en la transacción asociada y realizar un RollBack según corresponda.
__________________
Piensa siempre en positivo ! |
#3
|
||||
|
||||
Gracias gluglu por tu rapida respuesta, pero podrías orientarme un poco acerca de la transaccion asociada y del rollback que me comentas.
Gracias de nuevo. |
#4
|
||||
|
||||
El tema de las transacciones es un tema que no es inmediato y que lamento no poder reducirte a unas cuantas líneas en un hilo.
Te recomiendo empieces por este documento de un compañero del Club, y además en este hilo se habla sobre todo del tema y encontrarás otros varios enlaces adicionales. En cualquier caso, y perdona que te remita a ella, encontrarás inmensa cantidad de ayuda en la búsqueda del foro respecto al tema de transacciones, así como acerca del RollBack.
__________________
Piensa siempre en positivo ! |
#5
|
||||
|
||||
Muchas gracias gluglu, mirare lo que me has dicho, y si tengo alguna duda pondre otro hilo.
Gracias de nuevo. |
#6
|
||||
|
||||
muy buena explicacion gluglu, pero un pequeño detalle, en el caso que nos plantea el compañero se trata de tablas Paradox por lo que el asunto de las transacciones le queda grande.
En los componentes BDE se puede utilizar algo llamado cacheupdate, en ese caso las lineas antes del except deberian ser el applyupdate de cada tabla, y en el caso del except el cancelupdate Espero te sirva y cualquier cosa preguntas, la ayuda de Delphi plantea muy bien ese punto.
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#7
|
||||
|
||||
Hola Espartaco, te pongo un ejemplo, con BDE y ADO.
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
|
|
|