none
Comprobar procedimiento antes que se ejecute RRS feed

  • Pregunta

  • Buenas Tardes:

    Tengo  un aplicativo  que al oprimir un botón se generan varios códigos, que están en diferentes métodos, los cuales ingresan o actualizan base de datos sql, otro que imprimir el formulario  en una hoja de excel y otro que envía correo, para mejorar el orden por cada procedimiento lo dividí en diferentes partes, pero  quisiera preguntar si alguna manera que el código se verifique antes    de ejecutarse  comprobando  que este listo todo para que los métodos  cumplan sus funciones bien,  es decir  que verifique que cada modulo  se puede ejecutar bien y cuando lo valide  se haga la linea  completa, es decir el problema que tengo es  que por ejemplo el codigo crear el archivo en excel lo guarda, pero sucede que no tiene conexion a la base de datos, hace un procedimiento pero el otro queda nulo o incompleto lo cual genera que la transaccion quede mal registrada en el sistema y tenga que borrar los rastros manualmente.

    Quedaría  agradecido si alguien podría aclárame esto o darme indicaciones para optimizar el código.


    Hhendrix2012 Programattion OK

    martes, 25 de septiembre de 2012 21:35

Respuestas

  • Hola,

    quisiera preguntar si alguna manera que el código se verifique antes    de ejecutarse  comprobando  que este listo todo para que los métodos  cumplan sus funciones bien

    Creo que eso no se puede ya que interviene la linea del tiempo, imaginate el siguiente evento:

    -De alguna manera realizas la verificación de los métodos y esta Ok, pero un segundo mas tarde se cae el servicio de SQL server y se va el internet (por lo que dices que envias un correo) entonces que pasaría ?

    Sin embargo puedes utilizar transacciones que suplen en gran medida la necesidad que tienes, basicamente lo que hacen es un RollBack de algún bloque de código, entonces si ocurre un error en cualquier linea, la transacción devolvera los cambios y no se aplicará nada.

    Sería algo como (en pseudocodigo):

    Inicias transaccion

    -Ingresas o actualizas base de datos

    -Imprime formulario en excel

    -Envia correo

    Fin transaccion

    Ai alguno de los tres procesos fallara, nuestro querido lenguaje de programación (que de hecho debiste haber mencionado) devolvera los cambios (Rollback).

    Revisa estos links:

    TransactionScope (Clase)

    Using TransactionScope for handling transactions


    Un saludo, Cristian Pérez

    • Marcado como respuesta Hhendrix2012 miércoles, 26 de septiembre de 2012 16:54
    miércoles, 26 de septiembre de 2012 13:11

Todas las respuestas

  • Hola,

    quisiera preguntar si alguna manera que el código se verifique antes    de ejecutarse  comprobando  que este listo todo para que los métodos  cumplan sus funciones bien

    Creo que eso no se puede ya que interviene la linea del tiempo, imaginate el siguiente evento:

    -De alguna manera realizas la verificación de los métodos y esta Ok, pero un segundo mas tarde se cae el servicio de SQL server y se va el internet (por lo que dices que envias un correo) entonces que pasaría ?

    Sin embargo puedes utilizar transacciones que suplen en gran medida la necesidad que tienes, basicamente lo que hacen es un RollBack de algún bloque de código, entonces si ocurre un error en cualquier linea, la transacción devolvera los cambios y no se aplicará nada.

    Sería algo como (en pseudocodigo):

    Inicias transaccion

    -Ingresas o actualizas base de datos

    -Imprime formulario en excel

    -Envia correo

    Fin transaccion

    Ai alguno de los tres procesos fallara, nuestro querido lenguaje de programación (que de hecho debiste haber mencionado) devolvera los cambios (Rollback).

    Revisa estos links:

    TransactionScope (Clase)

    Using TransactionScope for handling transactions


    Un saludo, Cristian Pérez

    • Marcado como respuesta Hhendrix2012 miércoles, 26 de septiembre de 2012 16:54
    miércoles, 26 de septiembre de 2012 13:11
  • Muchas Gracias

    Efectivamente lo que decias  es lo que me imaginaba , pero buscaba alternativas  para esto  quedo agradecido por la respuesta.


    Hhendrix2012 Programattion OK

    miércoles, 26 de septiembre de 2012 16:54