none
Store Procedure contra servidor vinculado!! RRS feed

  • Pregunta

  • Tengo en mi base local slq server 2008 R2 un store procedure que realiza una actualizacion contra un servidor vinculado en otro lugar remoto (o sea es via internet no dentro de mi red local)

    El sp se ejecuta sin problemas desde el Management Studio de sql pero via codigo desde mi aplicacion vb.net 2010 no.

    me arroja

    "Valor de Timeout caducado. El período de tiempo de espera caducó antes de completar la operación o el servidor no responde.
    Se terminó la instrucción."

    el codigo es el que sigue

        Private Sub ActualizarCodigosHaciaCentralToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ActualizarCodigosHaciaCentralToolStripMenuItem.Click
          
            Dim Cmd As New SqlClient.SqlCommand
    
            Dim sqlConnection1 As New SqlConnection("server=127.0.0.1;database=CENTER51;uid=sa;pwd=3501;Connect Timeout=0")
    
            Dim rowsAffected As Integer
    
            Cmd.CommandText = "UpdateCodeBarEnCentral"
            Cmd.CommandType = CommandType.StoredProcedure
            cmd.Connection = sqlConnection1
    
            sqlConnection1.Open()
    
            rowsAffected = cmd.ExecuteNonQuery()
    
            sqlConnection1.Close()
    
    
    
            MsgBox("Fin de la instruccion")
        End Sub


    Leon'06

    miércoles, 2 de octubre de 2013 18:50

Respuestas

  • ¿Has comprobado si el procedimiento tarda más de 30 segundos en ejecutarse? El Timeout=0 que has puesto en la cadena de conexión sólo afecta a la apertura de la conexión. Pero una vez que está abierta, el timeout para la ejecución del comando se pone en el SqlCommand, y por defecto vale 30 segundos.

    Cmd.CommandTimeout = 120 'dos minutos

    • Marcado como respuesta JibElp miércoles, 2 de octubre de 2013 21:17
    miércoles, 2 de octubre de 2013 20:22

Todas las respuestas

  • ¿Has comprobado si el procedimiento tarda más de 30 segundos en ejecutarse? El Timeout=0 que has puesto en la cadena de conexión sólo afecta a la apertura de la conexión. Pero una vez que está abierta, el timeout para la ejecución del comando se pone en el SqlCommand, y por defecto vale 30 segundos.

    Cmd.CommandTimeout = 120 'dos minutos

    • Marcado como respuesta JibElp miércoles, 2 de octubre de 2013 21:17
    miércoles, 2 de octubre de 2013 20:22
  • Excelente!! tema solucionado.

    Muchas Gracias


    Leon'06

    miércoles, 2 de octubre de 2013 21:18