La Web del Programador: Comunidad de Programadores
 
    Pregunta:  51055 - LIMITE RECORDSET - FALLO POR TIMEOUT
Autor:  Carlos Reyes
Hola a todos, que tal, veran tengo un problema,estoy desarrrollando un modulo de un sistema desde el cual llamo a 2 stored procedures, el primero tarda aprox 5 min en generar el resultado final debido a la complejidad de la extraccion de informacion desde la base de datos, este funciona perfectamente tanto desde el Query Analyzer como de la interfaz en Visual Basic. El Segundo Stored Procedure tarda aprox 20 Segundos en generar la salida; funciona perfectamente desde el query analyzer pero desde visual me genera un error de Timeout con el servidor, es decir al parecer no logra realizar la conexion del todo con el servidor; ya utilize el debugger para identificar algun problema pero no se genera ningun error, solo me bota; ya utilize una traza desde SQL y aparece que se genero un error de timeout al realizar la consulta; copio los parametros que este me arroja al query analyzer y funciona perfectamente. El error de timeout que comunmente surge no es, ya que tengo definido como infinito el tiempo de espera. Estaba pensando que quiza el problema se deba a el numero maximo de registros que soporta el recordset; alguien conoce el maximo de registrosque soporta un recordset, o mejor aun, a que se deba este error.

Estoy conectandome a un servidor de componentes mediante un application proxy(esto para los clientes) y tengo instalado el service pack 4 de visual Basic 6 y el service pack mas reciente de SQL Server 2000,
si alguien me puede ayudar se lo agradecere

Les agradezco por adelantado su ayuda

  Respuesta:  Silvio Zabala
Estimado no se si ya lo habras solucionado, pero yo me encontre ante un problema parecido, el motor no era SQL sino DB2/400., y el driver del ODBC me decia que la consulta se extendio en el tiempo(por defecto es de 30). Por lo que extendi el tiempo o intervalo de espera desde que se ejecuta la consulta con la Propiedad CommandTimeout del objeto conección

Ej:
Cnn1.CommandTimeout=60 ///Segundos

Saludos.-