none
Error al ejecutar en Windows Ultimate RRS feed

  • Pregunta

  • Hola mis estimados. 

    Tengo una aplicación desarrollada en vb 2005, con bd original en Acces 2003, la cual funcionaba perfecto en win xp, con office 2007, y en win 7 home (en produccion), ahora el cliente actualizo su pc con Win 7 ultimate, y al ejecutar la aplicacion, está todo ok, conecta bien, puedo ingresar a los formularios..todo belleza..... El error me sale cuando realiza un proceso largo para sacar Clientes Deudores, el error dice:   Error no especificado, luego: funcion GetUltimoValor, Error: ExecuteReader requiere una conexion abierta y disponible. El estado actual de la conexion es cerrada.

    El detalle es que le instalado todo el visual studio 2008 en la pc del cliente, la aplicacion la he migrado, he seguido paso a paso y no me produce el error.  Por lo que he estado probando y mirando la bd, se corta cuando está entre las 700 y 800 filas..pero nada exacto.

    Se me ocurre como una alternativa instalar un vmware con xp y colocarle la aplicacion. Pero me parece que no es práctico. 

    Alguna idea del problema?

    Saludos,

    Bernardo.


    • Cambiado Enrique M. Montejo domingo, 29 de abril de 2012 10:01 acceso a datos (De:Lenguaje VB.NET)
    domingo, 22 de abril de 2012 21:01

Todas las respuestas

  • Segun la documentacion de microsoft, SqlCommand.ExecuteReader (Método)

    Te recomiendo que encierre el codigo que utiliza para abril la conexion en un bloque USING(), ejemplo:

    #Region "DataReader"
    Using connection As New SqlConnection(ConfigurationManager.ConnectionStrings("ConectionStringName").ConnectionString)
    	Dim query As [String] = "SELECT ColumName FROM TableName WHERE ColumnName LIKE @ParameterName"
    
    	Using command As New SqlCommand(query, connection)
    		command.CommandType = CommandType.Text
    
    		command.Parameters.AddWithValue("@date", [date])
    
    		connection.Open()
    
    		Dim list As New List(Of MyData)()
    
    		Using reader As SqlDataReader = command.ExecuteReader()
    			While reader.Read()
    				If reader.HasRows Then
    					Dim temp As New MyData(DirectCast(reader(0), Integer), DirectCast(reader(1), DateTime), DirectCast(reader(2), String), DirectCast(reader(3), Integer), DirectCast(reader(4), Integer), DirectCast(reader(5), Integer), _
    						DirectCast(reader(6), String), DirectCast(reader(7), String))
    
    					list.Add(temp)
    
    				End If
    			End While
    		End Using
    		Return list
    	End Using
    End Using


    Angel R. Jimenez G.
    Software Development
    Santo Domingo
    Republica Dominicana
    Blog

    domingo, 22 de abril de 2012 21:19
  • Gracias Angel, pero he migrado a vb 2008, incluso he convertido a acces 2007. La configuracion de la compilacion se la he colocado a framework 3. Pero aun así me sigue saliendo y es solo en Windows Ultimate.  En lo posible quisiera evitar cambiar la codificacion...pero si no hay otra. 

    saludos

    lunes, 23 de abril de 2012 5:41
  • hola

    pero has comentado que instalaste el VS en la pc del cliente

    no me extrañaria que procesando tanto registro como comentas que son 700 u 800 esto genere que al db cierre la conexion

    si dispones del VS porque en la pc donde esta el problema ejecuta la aplicacion desde el .exe y luego te adjuntas desde el VS attachandte al proceso

    de esta forma podras monitorear lo que sucede, por supuesto recuerda poner el .pdb del .exe y de las dll que disponga

    imagen

    con esto podrias detectar el problema mientra la aplciacion se ejcuta con normalidad y detectar en que punto se produce el fallo

    tambien usa el menu Debugging / Exceptions  imagen

    para que se detenga la ejecucion ante un fallo

    estas son las tecnicas que podrias usar para depurar sin eejcutas directo desde el VS y a la vez analizar el problema

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 23 de abril de 2012 6:02
  • Gracias Leandro, haré las pruebas...ya les comento.
    lunes, 23 de abril de 2012 13:35