none
recuperar la fecha del sistema desde un procedimiento almacenado RRS feed

  • Pregunta

  • Tengo un formulario en vb.net que tiene dos controles

    un textbox y un maskedtexbox con mascara de fecha corta

    lo que quiero es crear un procedimiento almacenado donde me traiga la fecha del sistema a ese maskedtextbox cuando yo escriba un valor en el text box pero quiero que sea desde un procedimiento almacenado por que la fecha que quiero tomar es la del servidor y no la maquina local para que el empleado no pueda manipular dicha fecha gracias....

    jueves, 23 de junio de 2016 12:47

Respuestas

  • Efrain Diaz,

    No, no obtienes la fecha del equipo cliente, obtienes la fecha del servidor de base de datos al que te conectas. Fíjate que la consulta se ejecuta contra un servidor de base de datos.

    Dim cmd As New SqlCommand(ConsultaSQL, cn)

    Donde cn es el objeto de tipo SqlConnection que define una conexión a una base de datos:

    Dim cn As New SqlConnection("CADENA_CONEXION")
    
    Dim ConsultaSQL As String = "SELECT GETDATE()"
    
    Dim cmd As New SqlCommand(ConsultaSQL, cn)
    
    cn.Open()
    
    maskedTextBox1.Text = Convert.ToDateTime(cmd.ExecuteScalar()).ToShortDateString()
    
    


    • Marcado como respuesta Efrain Diaz jueves, 23 de junio de 2016 15:05
    jueves, 23 de junio de 2016 14:42

Todas las respuestas

  • Efrain Diaz,

    Los usuarios no deberían poder manipular la configuración del sistema operativo, es un riesgo que ello ocurra. 

    Para obtener la fecha del servidor puedes hacer uso de la función GETDATE()

    Dim ConsultaSQL As String = "SELECT GETDATE()"
    
    Dim cmd As New SqlCommand(ConsultaSQL, cn)
    
    maskedTextBox1.Text = Convert.ToDateTime(cmd.ExecuteScalar()).ToShortDateString()


    jueves, 23 de junio de 2016 13:04
  • pero William hacer Dim ConsultaSQL as String="Select GETDATE()" estoy tomando la fecha de la computadora donde estoy ejecutando el commando, por eso quiero tener un store procedure que tome el GETDATE() del servidor y lo invoco desde vb.net, espero  me entiendas
    jueves, 23 de junio de 2016 14:29
  • Efrain Diaz,

    No, no obtienes la fecha del equipo cliente, obtienes la fecha del servidor de base de datos al que te conectas. Fíjate que la consulta se ejecuta contra un servidor de base de datos.

    Dim cmd As New SqlCommand(ConsultaSQL, cn)

    Donde cn es el objeto de tipo SqlConnection que define una conexión a una base de datos:

    Dim cn As New SqlConnection("CADENA_CONEXION")
    
    Dim ConsultaSQL As String = "SELECT GETDATE()"
    
    Dim cmd As New SqlCommand(ConsultaSQL, cn)
    
    cn.Open()
    
    maskedTextBox1.Text = Convert.ToDateTime(cmd.ExecuteScalar()).ToShortDateString()
    
    


    • Marcado como respuesta Efrain Diaz jueves, 23 de junio de 2016 15:05
    jueves, 23 de junio de 2016 14:42
  • El ejemplo de Williams es correcto, la consulta se ejecuta en el servidor no en tu equipo, a menos que el servidor sea el mismo equipo donde ejecutas la aplicación.

    Si requieres un SP, podría ser así:

    create procedure [dbo].[SP_ObtenerFechaSistema] 
    as
    select getdate() as FechaSistema

    Solo sería cuestión de adaptar el ejemplo de Williams para que ejecute el SP.


    create procedure [dbo].[ObtenerFechaSistema] 
    as
    select getdate() as FechaSistema

    Saludos.

    jueves, 23 de junio de 2016 14:44