Problema con código Embebido

23/10/2006 - 19:27 por Alejandro Giardino | Informe spam
Amigos, ya pregunté esto la semana pasada y me han contestado con buenas
sugerencias pero no he dado con la que resuelve el problema específico.
Reitero el taxto a ver si a alguien le pasó. Es un caso muy preciso y
sospecho de las instalaciones pero...???

Hola a todos, estoy haciendo el mantenimiento de un sistema programado en
ASP que lamentablemente tiene código embebido.
Tengo un error en ASP que no sé si no es en realidad de SQL, transcribo el
código:

<%
Set oConn = Server.CreateObject("ADODB.Connection")
Set oRS = Server.CreateObject("ADODB.Recordset")
oConn.Open Session("DSN") '''''''''''''''''''este es mi string de conexión

sSQL = "declare @Fecha as datetime "
sSQL = sSQL & "set @Fecha = getdate() -1 "
sSQL = sSQL & "select * from MiTabla where fecha < @Fecha "

oRS.Open sSQL, oconn

If oRS.EOF = true Then''''''''''''''''''''''''''esta es la línea que da
error
''''''Código
End If

oRS.Close
set ors = nothing
set oConn = nothing
%>


El error que aparece es:

ADODB.Recordset (0x800A0E78)
La operación no está permitida si el objeto está cerrado.
/MiArchivo.asp, línea 15

El problema lo estoy teninedo en el servidor de prueba que fue recientemente
reinstaldo, en producción funciona bien!!!!

A su vez vean que el error aparentemente tiene que ver con las variables
declaradas en el código embebido porque este código no falla:


<%
Set oConn = Server.CreateObject("ADODB.Connection")
Set oRS = Server.CreateObject("ADODB.Recordset")
oConn.Open Session("DSN")

sSQL = "select * from MiTabla"

oRS.Open sSQL, oconn

If oRS.EOF = true Then
''''''Código
End If

oRS.Close
set ors = nothing
set oConn = nothing
%>

Alguna sugerencia para solucionarlo???????????

Preguntas similare

Leer las respuestas

#1 Alejandro Giardino
23/10/2006 - 20:01 | Informe spam
Estimados, ya lo pude solucionar, le agrequé SET NOCOUNT ON antes del
declare, o sea, me quedó:

sSQL = "SET NOCOUNT ON declare @Fecha as datetime "

de todas formas no encontré documentación que me aclare en qué se relaciona
una cosa con la otra
"Alejandro Giardino" escribió en el mensaje
news:
Amigos, ya pregunté esto la semana pasada y me han contestado con buenas
sugerencias pero no he dado con la que resuelve el problema específico.
Reitero el taxto a ver si a alguien le pasó. Es un caso muy preciso y
sospecho de las instalaciones pero...???

Hola a todos, estoy haciendo el mantenimiento de un sistema programado en
ASP que lamentablemente tiene código embebido.
Tengo un error en ASP que no sé si no es en realidad de SQL, transcribo el
código:

<%
Set oConn = Server.CreateObject("ADODB.Connection")
Set oRS = Server.CreateObject("ADODB.Recordset")
oConn.Open Session("DSN") '''''''''''''''''''este es mi string de conexión

sSQL = "declare @Fecha as datetime "
sSQL = sSQL & "set @Fecha = getdate() -1 "
sSQL = sSQL & "select * from MiTabla where fecha < @Fecha "

oRS.Open sSQL, oconn

If oRS.EOF = true Then''''''''''''''''''''''''''esta es la línea que da
error
''''''Código
End If

oRS.Close
set ors = nothing
set oConn = nothing
%>


El error que aparece es:

ADODB.Recordset (0x800A0E78)
La operación no está permitida si el objeto está cerrado.
/MiArchivo.asp, línea 15

El problema lo estoy teninedo en el servidor de prueba que fue
recientemente reinstaldo, en producción funciona bien!!!!

A su vez vean que el error aparentemente tiene que ver con las variables
declaradas en el código embebido porque este código no falla:


<%
Set oConn = Server.CreateObject("ADODB.Connection")
Set oRS = Server.CreateObject("ADODB.Recordset")
oConn.Open Session("DSN")

sSQL = "select * from MiTabla"

oRS.Open sSQL, oconn

If oRS.EOF = true Then
''''''Código
End If

oRS.Close
set ors = nothing
set oConn = nothing
%>

Alguna sugerencia para solucionarlo???????????


Respuesta Responder a este mensaje
#2 Manuel Vera
23/10/2006 - 20:06 | Informe spam
Hola

Ya te habia sugerido que cambiaras el SQL y en vez de usar una variable de
SQL colocaras el getdate() directamente en el where. Por lo visto, no te
sirve, entonces... ahora te voy a dar otra idea para que hagas pruebas...

sSQL = "declare @Fecha as datetime "
' reemplaza esta linea como prueba a ver si funciona
' sSQL = sSQL & "set @Fecha = getdate() -1 "
sSQL = sSQL & "set @Fecha = getdate()+50 "
' es decir, coloca una fecha que sabes que te traera registros
' e igualmente, coloca en tu server de produccion una ASP de prueba
' que no traiga registros
sSQL = sSQL & "select * from MiTabla where fecha < @Fecha "

Otra sugerencia es que verifiques que versión de ADO y de SQL tienes en
ambos servidores. Si son distintas versiones de alguno de ellos, entonces
debes establecer en el servidor de pruebas las mismas versiones que tiene el
servidor en produccion.

Salu2
MV


"Alejandro Giardino" escribió en el mensaje
news:
Amigos, ya pregunté esto la semana pasada y me han contestado con buenas
sugerencias pero no he dado con la que resuelve el problema específico.
Reitero el taxto a ver si a alguien le pasó. Es un caso muy preciso y
sospecho de las instalaciones pero...???

Hola a todos, estoy haciendo el mantenimiento de un sistema programado en
ASP que lamentablemente tiene código embebido.
Tengo un error en ASP que no sé si no es en realidad de SQL, transcribo el
código:

<%
Set oConn = Server.CreateObject("ADODB.Connection")
Set oRS = Server.CreateObject("ADODB.Recordset")
oConn.Open Session("DSN") '''''''''''''''''''este es mi string de conexión

sSQL = "declare @Fecha as datetime "
sSQL = sSQL & "set @Fecha = getdate() -1 "
sSQL = sSQL & "select * from MiTabla where fecha < @Fecha "

oRS.Open sSQL, oconn

If oRS.EOF = true Then''''''''''''''''''''''''''esta es la línea que da
error
''''''Código
End If

oRS.Close
set ors = nothing
set oConn = nothing
%>


El error que aparece es:

ADODB.Recordset (0x800A0E78)
La operación no está permitida si el objeto está cerrado.
/MiArchivo.asp, línea 15

El problema lo estoy teninedo en el servidor de prueba que fue
recientemente reinstaldo, en producción funciona bien!!!!

A su vez vean que el error aparentemente tiene que ver con las variables
declaradas en el código embebido porque este código no falla:


<%
Set oConn = Server.CreateObject("ADODB.Connection")
Set oRS = Server.CreateObject("ADODB.Recordset")
oConn.Open Session("DSN")

sSQL = "select * from MiTabla"

oRS.Open sSQL, oconn

If oRS.EOF = true Then
''''''Código
End If

oRS.Close
set ors = nothing
set oConn = nothing
%>

Alguna sugerencia para solucionarlo???????????


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