none
Hacer altas o inserts programados

    Pregunta

  • Hola que tal, tengo la siguiente consulta:

    Tengo un formulario donde realizo altas de GASTOS, y tiene la opción de que sea un "GASTO PROGRAMADO" y por un combo box permito que se seleccione cada cuantos dias se repite el gasto, por ejemplo cada 7 o 30 días...

    Entonces cuando transcurra las cantidad de dias seleccionados a partir de la fecha de alta se debería generar automaticamente de nuevo ese gasto a las 0:00hs, es decir se tendria que hacer un insert automatico en la base de datos sin que el usuario haga nada.

    ¿cómo podría hacer algo así o que herramientas podria utilizar? Estoy trabajando con SQL SERVER EXPRESS 2008 R2 y  VB.NET 2015.

    Gracias de antemano, saludos.


    viernes, 18 de noviembre de 2016 11:28

Respuestas

  • Si quieres que se genere automaticamente en el servidor aunque tu programa no este en marcha, puedes usar el Agente de SQL Server (nota: requiere un SQL Server de pago, en la version Express no viene). Desde SSMS, agrega un Job para el Agente, en el Job ponle que se ejecute todos los dias a las 0:00 y dentro del job mete una sentencia SQL que haga un insert en la tabla de gastos leyendo desde la tabla de programaciones de gastos y poniendo un Where que solo saque de la tabla de programaciones los registros que esten previstospara ese dia.
    • Marcado como respuesta The High Road martes, 22 de noviembre de 2016 5:34
    viernes, 18 de noviembre de 2016 11:52
  • Muchas gracias Alberto Poblacion por tu gran ayuda!!!!! y Marvin E. Pineda también por tu colaboración! resolví mi situación implementando el agente de Sql server.

    martes, 22 de noviembre de 2016 5:43

Todas las respuestas

  • Si quieres que se genere automaticamente en el servidor aunque tu programa no este en marcha, puedes usar el Agente de SQL Server (nota: requiere un SQL Server de pago, en la version Express no viene). Desde SSMS, agrega un Job para el Agente, en el Job ponle que se ejecute todos los dias a las 0:00 y dentro del job mete una sentencia SQL que haga un insert en la tabla de gastos leyendo desde la tabla de programaciones de gastos y poniendo un Where que solo saque de la tabla de programaciones los registros que esten previstospara ese dia.
    • Marcado como respuesta The High Road martes, 22 de noviembre de 2016 5:34
    viernes, 18 de noviembre de 2016 11:52
  • Muchas gracias Alberto Poblacion por tu respuesta! desafortunadamente estoy utilizando SQL Server 2008 R2 versión express.

    Voy a intentar bajar la versión de evaluación de sql server y ver si puedo implementar lo que me apuntas.

    Mientras tanto si alguien tiene otra alternativa estare muy agradecido.

    viernes, 18 de noviembre de 2016 12:17
  • En lugar de la versión de evaluación, bájate la versión Developer, que ahora es gratuita (en el pasado costaba $50). La edición Developer tiene todas las funcionalidades de la Enterprise, pero la licencia limita su uso a desarrollo de aplicaciones, no se autoriza ponerla en producción.

    A falta del Agente de SQL, otra alternativa es usar el Programador de Tareas de Windows. Normalmente viene desactivado, pero lo puedes instalar desde "agregar o quitar componentes de Windows". Una vez que lo tienes instalado, con el comando AT desde una ventana de comandos puedes configurar un ejecutable para que se ejecute ciertos días a ciertas horas. Y ese ejecutable puede ser una aplicación de consola hecha en VB.NET, que por dentro busque los gastos pendientes y haga las inserciones oportunas.

    Otra opción es programar un Servicio Windows en VB.NET. Es una de las plantillas de proyecto que trae Visual Studio, pero hace falta al menos la Community Edition, en el Visual Studio Express no viene. Dentro del servicio, inicias un Timer en el método OnStart, y en el tick del timer haces las comprobaciones e inserciones pertinentes. El servicio lo instalas en Windows, y está permanentemente en marcha desde el momento que que se inicia al sistema.

    viernes, 18 de noviembre de 2016 19:32
  • O simplemente create un programa que este en ejecución en el servidor y que este se encargue de revisar diariamente que está programado a ejecutarse en el día y a que hora.

    Salu2


    Marvin E. Pineda

      ComboBoxMultiColumns

     NetBarControl

      TextEditor

    sábado, 19 de noviembre de 2016 0:13
    Moderador
  • Muchas gracias Alberto Poblacion por tu gran ayuda!!!!! y Marvin E. Pineda también por tu colaboración! resolví mi situación implementando el agente de Sql server.

    martes, 22 de noviembre de 2016 5:43