Error de ASP o de SQL???

18/10/2006 - 15:11 por Alejandro Giardino | Informe spam
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

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???????????
 

Leer las respuestas

#1 Manuel Vera
18/10/2006 - 18:09 | Informe spam
Ya que estas haciendo mantenimiento, yo cambiaria lo siguiente:

1.- En vez de usar Session("DSN") yo usaria Application("DSN"). Así consumes
menos memoria del server.

2.- El sSQL yo lo cambiaria como sigue:
sSQL = "select [especificar la lista de campos y obviar el *]" & _
" from MiTabla where fecha < getdate() -1"
pues la variable declarada no cumple ninguna funcion en ese caso que
enviaste.

Salu2
MV

"Alejandro Giardino" escribió en el mensaje
news:
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

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 similares