2010-10-26 59 views
5

Obtuve el error "No se puede cambiar la propiedad ActiveConnection de un objeto Recordset que tiene un objeto Command como origen" en mi página ASP clásica un par de veces, generalmente después de haber cambiado un procedimiento almacenado.¿Qué significa el error "No se puede cambiar la propiedad ActiveConnection de un objeto Recordset que tiene un objeto Command como su fuente"?

En el pasado, la desinstalación y reinstalación de las aplicaciones COM + y el reinicio de IIS parecían solucionar este problema. Supuse que la antigua propiedad de ActiveConnection estaba de alguna manera retenida en la memoria y la solución estaba desapareciendo. Hoy, no tuve tanta suerte.

Así que mi primera pregunta es, "¿Qué significa realmente este error?" La segunda pregunta es: "¿Cómo lo soluciono?"

He intentado consultar los siguientes enlaces, pero como un novato COM + esto está actualmente sobre mi cabeza.

http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/ASP/Q_20626178.html

http://msdn.microsoft.com/en-us/library/ee275490(BTS.10).aspx

Respuesta

8

Este error es más comúnmente asociado con un procedimiento almacenado devolver más de un conjunto de resultados, o devolver rowcounts (TRY añadiendo set nocount on en la parte superior del procedimiento.)

¿Hiciste algún cambio reciente en la base de datos? De ser así, esos cambios serían un buen lugar para empezar a buscar.

P.S. Estoy sorprendido de que tengas una aplicación COM + que se usó en 2010. Fase que se repite lo más rápido posible :)

+1

+1 para P.S. Aunque creo que la respuesta a "¿Qué significa esto?" es "Time to move to .Net" – NotMe

+1

Me gustaría mover a .NET, pero es difícil identificar buenos lugares para refactorizar la base de código existente. –

+0

En realidad se trata de "configurar nocount", no de "configurar rowcount off". También podría deberse a que esperas que un proceso devuelva un rs, y no es así, simplemente inserta y devuelve un código de estado o lo que sea. –

Cuestiones relacionadas