Corrección para las páginas ASP que no mostrarán un conjunto de registros ADO basado en una tabla #Temp

Aquí está el problema: su página asp está diseñada para mostrar los datos contenidos en una tabla #temp generada por SQL. Cuando ejecuta la página, recibe un error que indica que la operación no está permitida cuando se cierra el objeto. Sin embargo, si ejecuta el comando SQL en una ventana de consulta, los datos se muestran como se espera.


Al intentar ejecutar una página ASP que se extrae de la tabla #temp, aparece un mensaje desagradable que se parece a esto:
Error de ADODB.Recordset '800a0e78'
La operación no está permitida cuando el objeto está cerrado.

Esto sucede porque cada instrucción SQL dentro de su procedimiento almacenado devuelve un resultado. Este es un comportamiento incorporado del proveedor OLEDB de SQL Server (el proveedor ODBC de SQL Server no hace esto). El resultado puede ser un conjunto de resultados, pero si su página ASP barfing muestra el conjunto de resultados, entonces el resultado que se devuelve es un conteo de filas afectadas.

Para evitar que el proveedor OLEDB de SQL Server devuelva el recuento de filas afectadas, agregue la siguiente línea al comienzo de su procedimiento almacenado:CONFIGURAR NOCOUNT EN

Una vez que haya modificado el procedimiento almacenado, la página ASP en cuestión debería mostrar el conjunto de resultados deseado sin más problemas.

Nota: Otro error que requiere la CONFIGURAR NOCOUNT EN línea es:
Error ADODB.Recordset '800a0cc1'
El artículo no se puede encontrar en la colección correspondiente al nombre u ordinal solicitado.