Operation is not allowed when the object is closed!!!!

01/11/2005 - 18:19 por madrigal | Informe spam
Hola grupo, tengo una página asp en la que mando a ejecutar un stored
procedure y el resultado que devuelve se almacena en un recordset. Este
resultado se debe de mostrar en la página. Pero cuando intento hacerel
barrido del Recorset me sale el error:
ADODB.Recordset error '800a0e78'

Operation is not allowed when the object is closed.

No sé cual sea el motivo, pues he hecho ya esto antes y no había tenido
problema. Lo único que veo diferente es que en el stored procedure utilizo
tablas temporales, sin embargo cuando ejecuto el sp en el QueryAnalyzer
devuelve el resulatdo correctamente. ¿Alguine tiene alguna idea de porqué
pasa esto?.

Anexo el código que estoy utilizando. De antemano muchas gracias por su ayuda.

// Connection string.
var strConnect = "Provider=sqloledb;Data Source=PRBDDESA1;Initial
CatalogÚTABASEDESA;User Id=user;Password=pass";

// Create the required ADO objects.
var conn = Server.CreateObject("ADODB.Connection");
var rs = Server.CreateObject("ADODB.recordset");

// Open the connection.
conn.Open(strConnect);


rs = conn.Execute("EXEC TEMPORALES '22/10/2005','28/10/2005' ");

while (!rs.EOF) //<en esta línea es donde manda el error.
{

Preguntas similare

Leer las respuestas

#1 Sandra y María Claudia
01/11/2005 - 18:26 | Informe spam
En algun momento has cerrado la conexion y no te has dado cuenta. Eso
significa el error

____________________________________________________________________________________
SyMC
Suerte es la ayuda que te da la vida... Destino es lo que haces con esta
ayuda
Comparte con los demás, es la mejor manera de crecer y quererse más
El SP2 lo puedes bajar desde
http://www.microsoft.com/downloads/...p;FamilyID9c9dbe-3b8e-4f30-8245-9e368d3cdb5a
El artículo de JM Tella sobre como integrar SP2 con el Xp esta en
http://www.multingles.net/docs/xpsp2.htm
Ad-aware SE en español: http://www.lavasoft.de/spanish/
spywareblaster:
http://www.ct7support.com/javacool/...nload.html
Spybot - Search & Destroy 1.3:
http://www.zonavirus.com/descargas/spybotsd13.exe
The Cleaner http://www.moosoft.com/
CWShreader, Hijackthis http://www.majorgeeks.com/download4086.html


**********************************************************************************************************


"madrigal" escribió en el mensaje
news:
Hola grupo, tengo una página asp en la que mando a ejecutar un stored
procedure y el resultado que devuelve se almacena en un recordset. Este
resultado se debe de mostrar en la página. Pero cuando intento hacerel
barrido del Recorset me sale el error:
ADODB.Recordset error '800a0e78'

Operation is not allowed when the object is closed.

No sé cual sea el motivo, pues he hecho ya esto antes y no había tenido
problema. Lo único que veo diferente es que en el stored procedure utilizo
tablas temporales, sin embargo cuando ejecuto el sp en el QueryAnalyzer
devuelve el resulatdo correctamente. ¿Alguine tiene alguna idea de porqué
pasa esto?.

Anexo el código que estoy utilizando. De antemano muchas gracias por su
ayuda.

// Connection string.
var strConnect = "Provider=sqloledb;Data Source=PRBDDESA1;Initial
CatalogÚTABASEDESA;User Id=user;Password=pass";

// Create the required ADO objects.
var conn = Server.CreateObject("ADODB.Connection");
var rs = Server.CreateObject("ADODB.recordset");

// Open the connection.
conn.Open(strConnect);


rs = conn.Execute("EXEC TEMPORALES '22/10/2005','28/10/2005' ");

while (!rs.EOF) //<en esta línea es donde manda el error.
{

Respuesta Responder a este mensaje
#2 madrigal
01/11/2005 - 19:22 | Informe spam
Matías,

Con vbscript si me ha funcionado. El problema es que necesito hacerlo con
javascript.
Si en JavaScript le coloco un Set delante al recordset, me manda un error de
sintaxis. Si hago la consulta a la base sin utilizar tablas temporales, no
aparece el error, el problema también, es que para lograr el resultado que
espero, necesito usar tablas de paso (temporales) en el stored procedure. Es
muy extraño. ¿Alguna idea?. Gracias.

"Matías Iacono" escribió:

Pues con JavaScript nunca lo he hecho, pero por lo que veo, la posible falla
esta en no tener un SET delante del recordset.

Yo lo haria de esta manera:

dim strConnect = "Provider=sqloledb;Data Source=PRBDDESA1;Initial
CatalogÚTABASEDESA;User Id=user;Password=pass"

// Create the required ADO objects.
set conn = Server.CreateObject("ADODB.Connection")

// Open the connection.
conn.Open(strConnect);

set rs = conn.Execute("EXEC TEMPORALES '22/10/2005','28/10/2005' ")

do while not rs.EOF

De esta manera creas el objeto, no se cual seria el comportamiento en
Javascript.

Saludos.


Matías Iacono
Microsoft MVP ASP/ASP.net - DCE3
"madrigal" escribió en el mensaje
news:
> Hola grupo, tengo una página asp en la que mando a ejecutar un stored
> procedure y el resultado que devuelve se almacena en un recordset. Este
> resultado se debe de mostrar en la página. Pero cuando intento hacerel
> barrido del Recorset me sale el error:
> ADODB.Recordset error '800a0e78'
>
> Operation is not allowed when the object is closed.
>
> No sé cual sea el motivo, pues he hecho ya esto antes y no había tenido
> problema. Lo único que veo diferente es que en el stored procedure utilizo
> tablas temporales, sin embargo cuando ejecuto el sp en el QueryAnalyzer
> devuelve el resulatdo correctamente. ¿Alguine tiene alguna idea de porqué
> pasa esto?.
>
> Anexo el código que estoy utilizando. De antemano muchas gracias por su
> ayuda.
>
> // Connection string.
> var strConnect = "Provider=sqloledb;Data Source=PRBDDESA1;Initial
> CatalogÚTABASEDESA;User Id=user;Password=pass";
>
> // Create the required ADO objects.
> var conn = Server.CreateObject("ADODB.Connection");
> var rs = Server.CreateObject("ADODB.recordset");
>
> // Open the connection.
> conn.Open(strConnect);
>
>
> rs = conn.Execute("EXEC TEMPORALES '22/10/2005','28/10/2005' ");
>
> while (!rs.EOF) //<en esta línea es donde manda el error.
> {
>



Respuesta Responder a este mensaje
#3 madrigal
01/11/2005 - 19:29 | Informe spam
Sandra y María Claudia,

He revisado el código de acuerdo a tu sugerencia, pero no encuentro en dónde
puedo estar cerrando la conexión.
Sabes, cuando envío una consulta que no involucra tablas temporales, no
aparece el error. La cosa cambia en cuanto utilizo en tabla temporal. El
problema es que para lograr el resultado que quiero, es necesario que utilice
tablas de paso en el sp.

Gracias y saludos.


"Sandra y María Claudia" escribió:

En algun momento has cerrado la conexion y no te has dado cuenta. Eso
significa el error

____________________________________________________________________________________
SyMC
Suerte es la ayuda que te da la vida... Destino es lo que haces con esta
ayuda
Comparte con los demás, es la mejor manera de crecer y quererse más
El SP2 lo puedes bajar desde
http://www.microsoft.com/downloads/...p;FamilyID9c9dbe-3b8e-4f30-8245-9e368d3cdb5a
El artículo de JM Tella sobre como integrar SP2 con el Xp esta en
http://www.multingles.net/docs/xpsp2.htm
Ad-aware SE en español: http://www.lavasoft.de/spanish/
spywareblaster:
http://www.ct7support.com/javacool/...nload.html
Spybot - Search & Destroy 1.3:
http://www.zonavirus.com/descargas/spybotsd13.exe
The Cleaner http://www.moosoft.com/
CWShreader, Hijackthis http://www.majorgeeks.com/download4086.html


**********************************************************************************************************


"madrigal" escribió en el mensaje
news:
> Hola grupo, tengo una página asp en la que mando a ejecutar un stored
> procedure y el resultado que devuelve se almacena en un recordset. Este
> resultado se debe de mostrar en la página. Pero cuando intento hacerel
> barrido del Recorset me sale el error:
> ADODB.Recordset error '800a0e78'
>
> Operation is not allowed when the object is closed.
>
> No sé cual sea el motivo, pues he hecho ya esto antes y no había tenido
> problema. Lo único que veo diferente es que en el stored procedure utilizo
> tablas temporales, sin embargo cuando ejecuto el sp en el QueryAnalyzer
> devuelve el resulatdo correctamente. ¿Alguine tiene alguna idea de porqué
> pasa esto?.
>
> Anexo el código que estoy utilizando. De antemano muchas gracias por su
> ayuda.
>
> // Connection string.
> var strConnect = "Provider=sqloledb;Data Source=PRBDDESA1;Initial
> CatalogÚTABASEDESA;User Id=user;Password=pass";
>
> // Create the required ADO objects.
> var conn = Server.CreateObject("ADODB.Connection");
> var rs = Server.CreateObject("ADODB.recordset");
>
> // Open the connection.
> conn.Open(strConnect);
>
>
> rs = conn.Execute("EXEC TEMPORALES '22/10/2005','28/10/2005' ");
>
> while (!rs.EOF) //<en esta línea es donde manda el error.
> {
>



Respuesta Responder a este mensaje
#4 Matías Iacono
01/11/2005 - 22:47 | Informe spam
Pues con JavaScript nunca lo he hecho, pero por lo que veo, la posible falla
esta en no tener un SET delante del recordset.

Yo lo haria de esta manera:

dim strConnect = "Provider=sqloledb;Data Source=PRBDDESA1;Initial
CatalogÚTABASEDESA;User Id=user;Password=pass"

// Create the required ADO objects.
set conn = Server.CreateObject("ADODB.Connection")

// Open the connection.
conn.Open(strConnect);

set rs = conn.Execute("EXEC TEMPORALES '22/10/2005','28/10/2005' ")

do while not rs.EOF

De esta manera creas el objeto, no se cual seria el comportamiento en
Javascript.

Saludos.


Matías Iacono
Microsoft MVP ASP/ASP.net - DCE3
"madrigal" escribió en el mensaje
news:
Hola grupo, tengo una página asp en la que mando a ejecutar un stored
procedure y el resultado que devuelve se almacena en un recordset. Este
resultado se debe de mostrar en la página. Pero cuando intento hacerel
barrido del Recorset me sale el error:
ADODB.Recordset error '800a0e78'

Operation is not allowed when the object is closed.

No sé cual sea el motivo, pues he hecho ya esto antes y no había tenido
problema. Lo único que veo diferente es que en el stored procedure utilizo
tablas temporales, sin embargo cuando ejecuto el sp en el QueryAnalyzer
devuelve el resulatdo correctamente. ¿Alguine tiene alguna idea de porqué
pasa esto?.

Anexo el código que estoy utilizando. De antemano muchas gracias por su
ayuda.

// Connection string.
var strConnect = "Provider=sqloledb;Data Source=PRBDDESA1;Initial
CatalogÚTABASEDESA;User Id=user;Password=pass";

// Create the required ADO objects.
var conn = Server.CreateObject("ADODB.Connection");
var rs = Server.CreateObject("ADODB.recordset");

// Open the connection.
conn.Open(strConnect);


rs = conn.Execute("EXEC TEMPORALES '22/10/2005','28/10/2005' ");

while (!rs.EOF) //<en esta línea es donde manda el error.
{

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida