![]() |
Captura de errores
Hola Compañeros!
Continuando con el desarrollo del utilitario que hago, se me ha presentado un pequeño inconveniente. Cuando estoy haciendo la migración de los datos de un fichero texto a la tabla, quiero capturar cualquier tipo de error que se pueda presentar al hacer las inserciones. Estoy utilizando un ClienteDataset, Provider, y un SQLTable, claro que pienso cambiarlo por un SQLDataset. He colocado al hacerl el applyupdate del cds en -1, 0, 1 y no he podido capturar los errores. Capturarlos en el sentido que si se presenta un error, hacer la inserción del mensaje en un memo y que continue con el siguiente registro. Si se presenta un error, sigue haciendo al inserción, pero cuando miro en la BD en la tabla solo ha insertado uno o dos hasta el error y en el memo sigue como si nada. Agradecería la ayuda de antemano. |
Hola.
¿ Haces un ApplyUpdates para cada registro ?. Yo te lo aconsejaría. Código:
while not ..... do begin |
Hola Marc!
En efecto estoy haciendo casi igual al consejo, solo que el applyupdate lo coloco en el beforepost del cds y las instrucciones de inserción en el bloque try, indicando o insertando en el memo la linea insertada y en el except la linea de error, solo que al ocurrir un error con el applyupdate(0), no sigue insertando en la tabla pero en el memo sigue visualizando la inserción. Influye el colocar el apply en el beforepost?? Gracias nuevamente |
Hola.
La verdad es que el evento BeforePost no es el más adecuado. Puesto que como el nombre indica, se dispara antes del Post. Por eso sería mucho más adecuado el evento AfterPost, que se dispara después del Post. Al hacer un ApplyUpdates antes del Post, lo que me parece curioso es que llegue a insertar algún registro (el registro aún no ha sido insertado en el ClientDataSet). En todo caso me parece normal que tenga un comportamiento extraño. NOTA : El evento BeforePost, es para hacer validaciones antes de insertar el registro. Y en el caso de que no se cumplan todas las condiciones, poder cancelar la inserción / modificación. Yo te aconsejaría que puesieras el ApplyUpdates a continuación del Post (no hay ninguna necesidad de que se dispare en un evento), aunque si quieres utilizar un evento, prueba con el AfterPost. Saludos. |
Hola Marc!
He cometido un error, mejor dicho un orror, me he equivocado al escibir, el evento es el Afterpost, creo que tengo pegado el beforepost y por eso lo he escrito, de todas formas si creo que tienes razón en cuanto al hacer al applyupdate después del post sin necesidad del evento. Gracias nuevmante. |
La franja horaria es GMT +2. Ahora son las 06:37:14. |
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