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

Preguntas similare

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



Respuesta Responder a este mensaje
#2 Alejandro Giardino
18/10/2006 - 21:14 | Informe spam
Ok Manuel gracias, es buena sugerencia. De todas formas eso no me soluciona
el problema.

El error que me tira sugiere que estaría fallando la línea "oRS.Open sSQL,
oconn" y que luego falla el "oRS.EOF" al no haber abierto el recordset en la
instrucción anterior.
La verdad es que lo encuentro extraño, no lo me suena a un problema de
código sino a alguna configuración/instalación (de hecho en otro servidor
funciona bien!!!), pero no lo encuentro. Ya probé revisando el idioma del
usuario con el que se abre la base SQL y viendo si era alguna configuración
regional, pero nada.

Gracias

"Manuel Vera" escribió en el mensaje
news:eO3G$%
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???????????







Respuesta Responder a este mensaje
#3 Dani Castillo
18/10/2006 - 22:14 | Informe spam
no suelo trabajar con sql's asi montadas pero ¿no sera problema de la
separacion entre instrucciones? tal como lo estas lanzando son 3
instrucciones en una unica linea con espacio como separador , quiza poniendo
punto y coma o retorno de carro (vbcrlf) funcione

de todas formas la sugerencia de Manuel Vera deberia solucionar el problema
=)

___________________________
Dani Castillo

Mis Fotos:
http://picasaweb.google.com/dcdani
___________________________
"Alejandro Giardino" escribió en el mensaje
news:
Ok Manuel gracias, es buena sugerencia. De todas formas eso no me
soluciona el problema.

El error que me tira sugiere que estaría fallando la línea "oRS.Open
sSQL, oconn" y que luego falla el "oRS.EOF" al no haber abierto el
recordset en la instrucción anterior.
La verdad es que lo encuentro extraño, no lo me suena a un problema de
código sino a alguna configuración/instalación (de hecho en otro servidor
funciona bien!!!), pero no lo encuentro. Ya probé revisando el idioma del
usuario con el que se abre la base SQL y viendo si era alguna
configuración regional, pero nada.

Gracias

"Manuel Vera" escribió en el mensaje
news:eO3G$%
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???????????











Respuesta Responder a este mensaje
#4 Manuel Vera
18/10/2006 - 22:21 | Informe spam
Lo mas raro es que Alejandro menciona que en otro servidor funciona!!
=S
¿Sera que debes actualizar las librerias de ADO en el server donde falla?
Ni idea!
Pero yo sigo con mi sugerencia, que elimines la declaracion de variable
dentro del SQL, y lo coloques directo... salvo que eso sea solo un ejemplo y
hagas algo mas en tu codigo real.
MV

"Dani Castillo" escribió en el mensaje
news:
no suelo trabajar con sql's asi montadas pero ¿no sera problema de la
separacion entre instrucciones? tal como lo estas lanzando son 3
instrucciones en una unica linea con espacio como separador , quiza
poniendo punto y coma o retorno de carro (vbcrlf) funcione

de todas formas la sugerencia de Manuel Vera deberia solucionar el
problema =)

___________________________
Dani Castillo

Mis Fotos:
http://picasaweb.google.com/dcdani
___________________________
"Alejandro Giardino" escribió en el mensaje
news:
Ok Manuel gracias, es buena sugerencia. De todas formas eso no me
soluciona el problema.

El error que me tira sugiere que estaría fallando la línea "oRS.Open
sSQL, oconn" y que luego falla el "oRS.EOF" al no haber abierto el
recordset en la instrucción anterior.
La verdad es que lo encuentro extraño, no lo me suena a un problema de
código sino a alguna configuración/instalación (de hecho en otro servidor
funciona bien!!!), pero no lo encuentro. Ya probé revisando el idioma del
usuario con el que se abre la base SQL y viendo si era alguna
configuración regional, pero nada.

Gracias

"Manuel Vera" escribió en el mensaje
news:eO3G$%
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???????????















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