Error ADODB.Field (0x80020009) SOS URGENTE

22/09/2006 - 08:37 por Aura | Informe spam
Hola !

Tengo una consulta en las que muestro el resultado en una pagina ASP. Y me
da el siguiente error

Tipo de error:
ADODB.Field (0x80020009)
El valor de BOF o EOF es True, o el actual registro se eliminó; la operación
solicitada requiere un registro actual.

Lo mas raro de todo,es que no me da ninguna linea de error. Y en realidad,
en la bd Access el registro existe y la consulta se executa correctamente.
Es posible que las consultas un poco largas den este tipo de error?

Muchas gracias por la ayuda !
Un saludo

Preguntas similare

Leer las respuestas

#6 Aura
24/09/2006 - 18:27 | Informe spam
Hola Victor,

He declarado el objeto ADODB.Recordset pero no se como sé como establecer
las propiedades, que quieres decir exactamente para que el cursor sea del
lado del cliente...

Muchas gracias

"Victor B." wrote:

Si no se soluciona con lo que te indica Matias, declara RS como objeto
ADODB.Recordset y establece sus propiedades para que el cursor sea del lado
del cliente.


Víctor B.
Desarrollador independiente
"Aura" escribió en el mensaje
news:
> Ok, aquí tienes el código. A ver que conclusión sacas.
> Muchas gracias por adelantado
>
> <%
> 'Connecto
> Set miconn = Server.CreateObject("ADODB.Connection")
> miconn.open "DSN=NombreBD;UID=;Password=;"
>
> sSQL ="SELECT TempIng.Suma_Ingreso, TempPag.Suma_Pagado, TempIng.[Año],
> TempPag.Mes, interventor, Direccion.* FROM TempPag, TempIng, Cargo,
> Direccion
> WHERE (((TempIng.[Año])=TempPag.[Año]) AND ((TempIng.Mes)=TempPag.[Mes])
> AND
> ((TempIng.[Mes])="&Request.Form("mes")&"))"
>
> set RS = miconn.Execute(sSQL)
>
> If RS.EOF then
> Response.Write ("ERROR: No existeixe !")
> Else
> %>
> <br><br>
>
> <div align="center">
> <table>
> <tr>
> <td colspan="3"><hr size="1" color="#666666"></td>
> </tr>
> <tr>
> <td rowspan="2">Año
> </td>
> <td colspan="2"><div align="center">Mes <% =RS("Mes")%> de <%
> =RS("Año")%></div></td>
> </tr>
> <tr>
> <td>Importe</td>
> <td>Importe</td>
> </tr>
> <tr>
> <td colspan="3"><hr size="1" color="#666666"></td>
> </tr>
> <% sumaI = 0
> sumaP = 0
> do until RS.EOF %>
> <tr>
> <td><% =RS("Año")%></td>
> <td><% =RS("Suma_Ingreso")%></td>
> <td><% =RS("Suma_Pagado")%></td>
> </tr>
> <% sumaI = sumaI + RS("Suma_Ingreso")
> sumaP = sumaP + RS("Suma_Pagado")
> RS.MoveNext
> loop%>
> <tr>
> <td colspan="3"><hr color="#000000"></td>
> </tr>
> <tr>
> <td><strong>Total</strong></td>
> <td><% Response.Write " "&sumaI&"?"%></td>
> <td><% Response.Write " "&sumaP&"?"%></td>
> <td></td>
> </tr>
> <tr>
> <td colspan="3"><hr color="#000000"></td>
> </tr>
> <tr>
> <td colspan="3">
> <% stringData(Month(Now)) %><br>
> </td>
> </tr>
> <tr>
> <td colspan="3">
> </td>
> </tr>
> </table>
> </div>
> <% End if
> RS.Close
> set RS = Nothing
> miconn.Close
> set miconn = Nothing
> %>
>
> "Matias Iacono" wrote:
>
>> Puedes colocar el codigo de tu pagina?
>>
>> Aparentemente estas tratando de acceder a un registro cuando el recordset
>> se
>> encuentra al final.
>>
>> Saludos.
>>
>> Microsoft MVP
>> Orador Regional INETA
>>
>>
>> "Aura" wrote:
>>
>> >
>> > Hola !
>> >
>> > Tengo una consulta en las que muestro el resultado en una pagina ASP. Y
>> > me
>> > da el siguiente error
>> >
>> > Tipo de error:
>> > ADODB.Field (0x80020009)
>> > El valor de BOF o EOF es True, o el actual registro se eliminó; la
>> > operación
>> > solicitada requiere un registro actual.
>> >
>> > Lo mas raro de todo,es que no me da ninguna linea de error. Y en
>> > realidad,
>> > en la bd Access el registro existe y la consulta se executa
>> > correctamente.
>> > Es posible que las consultas un poco largas den este tipo de error?
>> >
>> > Muchas gracias por la ayuda !
>> > Un saludo
>> >



Respuesta Responder a este mensaje
#7 Victor B.
25/09/2006 - 01:10 | Informe spam
Hola Aura, debes establecer las propiedades CursorLocation y CursorType:
miRs = Server.CreateObject("ADODB.Recordset")
miRs.CursorLocation = 3 'es el valor de la constante adUseClient
miRs.CursorType = 1 'valor de adOpenKeyset
miRs.ActiveConnection = miconn
miRs.Open( sSQL )


Víctor B.
Desarrollador independiente

"Aura" escribió en el mensaje
news:
Hola Victor,

He declarado el objeto ADODB.Recordset pero no se como sé como establecer
las propiedades, que quieres decir exactamente para que el cursor sea del
lado del cliente...

Muchas gracias

"Victor B." wrote:

Si no se soluciona con lo que te indica Matias, declara RS como objeto
ADODB.Recordset y establece sus propiedades para que el cursor sea del
lado
del cliente.


Víctor B.
Desarrollador independiente
"Aura" escribió en el mensaje
news:
> Ok, aquí tienes el código. A ver que conclusión sacas.
> Muchas gracias por adelantado
>
> <%
> 'Connecto
> Set miconn = Server.CreateObject("ADODB.Connection")
> miconn.open "DSN=NombreBD;UID=;Password=;"
>
> sSQL ="SELECT TempIng.Suma_Ingreso, TempPag.Suma_Pagado, TempIng.[Año],
> TempPag.Mes, interventor, Direccion.* FROM TempPag, TempIng, Cargo,
> Direccion
> WHERE (((TempIng.[Año])=TempPag.[Año]) AND
> ((TempIng.Mes)=TempPag.[Mes])
> AND
> ((TempIng.[Mes])="&Request.Form("mes")&"))"
>
> set RS = miconn.Execute(sSQL)
>
> If RS.EOF then
> Response.Write ("ERROR: No existeixe !")
> Else
> %>
> <br><br>
>
> <div align="center">
> <table>
> <tr>
> <td colspan="3"><hr size="1" color="#666666"></td>
> </tr>
> <tr>
> <td rowspan="2">Año
> </td>
> <td colspan="2"><div align="center">Mes <% =RS("Mes")%> de <%
> =RS("Año")%></div></td>
> </tr>
> <tr>
> <td>Importe</td>
> <td>Importe</td>
> </tr>
> <tr>
> <td colspan="3"><hr size="1" color="#666666"></td>
> </tr>
> <% sumaI = 0
> sumaP = 0
> do until RS.EOF %>
> <tr>
> <td><% =RS("Año")%></td>
> <td><% =RS("Suma_Ingreso")%></td>
> <td><% =RS("Suma_Pagado")%></td>
> </tr>
> <% sumaI = sumaI + RS("Suma_Ingreso")
> sumaP = sumaP + RS("Suma_Pagado")
> RS.MoveNext
> loop%>
> <tr>
> <td colspan="3"><hr color="#000000"></td>
> </tr>
> <tr>
> <td><strong>Total</strong></td>
> <td><% Response.Write " "&sumaI&"?"%></td>
> <td><% Response.Write " "&sumaP&"?"%></td>
> <td></td>
> </tr>
> <tr>
> <td colspan="3"><hr color="#000000"></td>
> </tr>
> <tr>
> <td colspan="3">
> <% stringData(Month(Now)) %><br>
> </td>
> </tr>
> <tr>
> <td colspan="3">
> </td>
> </tr>
> </table>
> </div>
> <% End if
> RS.Close
> set RS = Nothing
> miconn.Close
> set miconn = Nothing
> %>
>
> "Matias Iacono" wrote:
>
>> Puedes colocar el codigo de tu pagina?
>>
>> Aparentemente estas tratando de acceder a un registro cuando el
>> recordset
>> se
>> encuentra al final.
>>
>> Saludos.
>>
>> Microsoft MVP
>> Orador Regional INETA
>>
>>
>> "Aura" wrote:
>>
>> >
>> > Hola !
>> >
>> > Tengo una consulta en las que muestro el resultado en una pagina
>> > ASP. Y
>> > me
>> > da el siguiente error
>> >
>> > Tipo de error:
>> > ADODB.Field (0x80020009)
>> > El valor de BOF o EOF es True, o el actual registro se eliminó; la
>> > operación
>> > solicitada requiere un registro actual.
>> >
>> > Lo mas raro de todo,es que no me da ninguna linea de error. Y en
>> > realidad,
>> > en la bd Access el registro existe y la consulta se executa
>> > correctamente.
>> > Es posible que las consultas un poco largas den este tipo de error?
>> >
>> > Muchas gracias por la ayuda !
>> > Un saludo
>> >



Respuesta Responder a este mensaje
#8 Claudio
25/09/2006 - 16:25 | Informe spam
1. Cheque como funciona el do until, piensa en cambiarlo por un do
while.
2. anda colocando response.end y moviendolo hasta que encuentres en que
linea pincha. Si es dentro del while, ayudate con una variable.


Victor B. wrote:
Hola Aura, debes establecer las propiedades CursorLocation y CursorType:
miRs = Server.CreateObject("ADODB.Recordset")
miRs.CursorLocation = 3 'es el valor de la constante adUseClient
miRs.CursorType = 1 'valor de adOpenKeyset
miRs.ActiveConnection = miconn
miRs.Open( sSQL )


Víctor B.
Desarrollador independiente

"Aura" escribió en el mensaje
news:
> Hola Victor,
>
> He declarado el objeto ADODB.Recordset pero no se como sé como establecer
> las propiedades, que quieres decir exactamente para que el cursor sea del
> lado del cliente...
>
> Muchas gracias
>
> "Victor B." wrote:
>
>> Si no se soluciona con lo que te indica Matias, declara RS como objeto
>> ADODB.Recordset y establece sus propiedades para que el cursor sea del
>> lado
>> del cliente.
>>
>>
>> Víctor B.
>> Desarrollador independiente
>> "Aura" escribió en el mensaje
>> news:
>> > Ok, aquí tienes el código. A ver que conclusión sacas.
>> > Muchas gracias por adelantado
>> >
>> > <%
>> > 'Connecto
>> > Set miconn = Server.CreateObject("ADODB.Connection")
>> > miconn.open "DSN=NombreBD;UID=;Password=;"
>> >
>> > sSQL ="SELECT TempIng.Suma_Ingreso, TempPag.Suma_Pagado, TempIng.[Año],
>> > TempPag.Mes, interventor, Direccion.* FROM TempPag, TempIng, Cargo,
>> > Direccion
>> > WHERE (((TempIng.[Año])=TempPag.[Año]) AND
>> > ((TempIng.Mes)=TempPag.[Mes])
>> > AND
>> > ((TempIng.[Mes])="&Request.Form("mes")&"))"
>> >
>> > set RS = miconn.Execute(sSQL)
>> >
>> > If RS.EOF then
>> > Response.Write ("ERROR: No existeixe !")
>> > Else
>> > %>
>> > <br><br>
>> >
>> > <div align="center">
>> > <table>
>> > <tr>
>> > <td colspan="3"><hr size="1" color="#666666"></td>
>> > </tr>
>> > <tr>
>> > <td rowspan="2">Año
>> > </td>
>> > <td colspan="2"><div align="center">Mes <% =RS("Mes")%> de <%
>> > =RS("Año")%></div></td>
>> > </tr>
>> > <tr>
>> > <td>Importe</td>
>> > <td>Importe</td>
>> > </tr>
>> > <tr>
>> > <td colspan="3"><hr size="1" color="#666666"></td>
>> > </tr>
>> > <% sumaI = 0
>> > sumaP = 0
>> > do until RS.EOF %>
>> > <tr>
>> > <td><% =RS("Año")%></td>
>> > <td><% =RS("Suma_Ingreso")%></td>
>> > <td><% =RS("Suma_Pagado")%></td>
>> > </tr>
>> > <% sumaI = sumaI + RS("Suma_Ingreso")
>> > sumaP = sumaP + RS("Suma_Pagado")
>> > RS.MoveNext
>> > loop%>
>> > <tr>
>> > <td colspan="3"><hr color="#000000"></td>
>> > </tr>
>> > <tr>
>> > <td><strong>Total</strong></td>
>> > <td><% Response.Write " "&sumaI&"?"%></td>
>> > <td><% Response.Write " "&sumaP&"?"%></td>
>> > <td></td>
>> > </tr>
>> > <tr>
>> > <td colspan="3"><hr color="#000000"></td>
>> > </tr>
>> > <tr>
>> > <td colspan="3">
>> > <% stringData(Month(Now)) %><br>
>> > </td>
>> > </tr>
>> > <tr>
>> > <td colspan="3">
>> > </td>
>> > </tr>
>> > </table>
>> > </div>
>> > <% End if
>> > RS.Close
>> > set RS = Nothing
>> > miconn.Close
>> > set miconn = Nothing
>> > %>
>> >
>> > "Matias Iacono" wrote:
>> >
>> >> Puedes colocar el codigo de tu pagina?
>> >>
>> >> Aparentemente estas tratando de acceder a un registro cuando el
>> >> recordset
>> >> se
>> >> encuentra al final.
>> >>
>> >> Saludos.
>> >>
>> >> Microsoft MVP
>> >> Orador Regional INETA
>> >>
>> >>
>> >> "Aura" wrote:
>> >>
>> >> >
>> >> > Hola !
>> >> >
>> >> > Tengo una consulta en las que muestro el resultado en una pagina
>> >> > ASP. Y
>> >> > me
>> >> > da el siguiente error
>> >> >
>> >> > Tipo de error:
>> >> > ADODB.Field (0x80020009)
>> >> > El valor de BOF o EOF es True, o el actual registro se eliminó; la
>> >> > operación
>> >> > solicitada requiere un registro actual.
>> >> >
>> >> > Lo mas raro de todo,es que no me da ninguna linea de error. Y en
>> >> > realidad,
>> >> > en la bd Access el registro existe y la consulta se executa
>> >> > correctamente.
>> >> > Es posible que las consultas un poco largas den este tipo de error?
>> >> >
>> >> > Muchas gracias por la ayuda !
>> >> > Un saludo
>> >> >
>>
>>
>>
Respuesta Responder a este mensaje
#9 mjge
28/09/2006 - 20:06 | Informe spam
Claudio ha escrito:

1. Cheque como funciona el do until, piensa en cambiarlo por un do
while.
2. anda colocando response.end y moviendolo hasta que encuentres en que
linea pincha. Si es dentro del while, ayudate con una variable.


Victor B. wrote:
> Hola Aura, debes establecer las propiedades CursorLocation y CursorType:
> miRs = Server.CreateObject("ADODB.Recordset")
> miRs.CursorLocation = 3 'es el valor de la constante adUseClient
> miRs.CursorType = 1 'valor de adOpenKeyset
> miRs.ActiveConnection = miconn
> miRs.Open( sSQL )
>
>
> Víctor B.
> Desarrollador independiente
>
> "Aura" escribió en el mensaje
> news:
> > Hola Victor,
> >
> > He declarado el objeto ADODB.Recordset pero no se como sé como establecer
> > las propiedades, que quieres decir exactamente para que el cursor sea del
> > lado del cliente...
> >
> > Muchas gracias
> >
> > "Victor B." wrote:
> >
> >> Si no se soluciona con lo que te indica Matias, declara RS como objeto
> >> ADODB.Recordset y establece sus propiedades para que el cursor sea del
> >> lado
> >> del cliente.
> >>
> >>
> >> Víctor B.
> >> Desarrollador independiente
> >> "Aura" escribió en el mensaje
> >> news:
> >> > Ok, aquí tienes el código. A ver que conclusión sacas.
> >> > Muchas gracias por adelantado
> >> >
> >> > <%
> >> > 'Connecto
> >> > Set miconn = Server.CreateObject("ADODB.Connection")
> >> > miconn.open "DSN=NombreBD;UID=;Password=;"
> >> >
> >> > sSQL ="SELECT TempIng.Suma_Ingreso, TempPag.Suma_Pagado, TempIng.[Año],
> >> > TempPag.Mes, interventor, Direccion.* FROM TempPag, TempIng, Cargo,
> >> > Direccion
> >> > WHERE (((TempIng.[Año])=TempPag.[Año]) AND
> >> > ((TempIng.Mes)=TempPag.[Mes])
> >> > AND
> >> > ((TempIng.[Mes])="&Request.Form("mes")&"))"
> >> >
> >> > set RS = miconn.Execute(sSQL)
> >> >
> >> > If RS.EOF then
> >> > Response.Write ("ERROR: No existeixe !")
> >> > Else
> >> > %>
> >> > <br><br>
> >> >
> >> > <div align="center">
> >> > <table>
> >> > <tr>
> >> > <td colspan="3"><hr size="1" color="#666666"></td>
> >> > </tr>
> >> > <tr>
> >> > <td rowspan="2">Año
> >> > </td>
> >> > <td colspan="2"><div align="center">Mes <% =RS("Mes")%> de <%
> >> > =RS("Año")%></div></td>
> >> > </tr>
> >> > <tr>
> >> > <td>Importe</td>
> >> > <td>Importe</td>
> >> > </tr>
> >> > <tr>
> >> > <td colspan="3"><hr size="1" color="#666666"></td>
> >> > </tr>
> >> > <% sumaI = 0
> >> > sumaP = 0
> >> > do until RS.EOF %>
> >> > <tr>
> >> > <td><% =RS("Año")%></td>
> >> > <td><% =RS("Suma_Ingreso")%></td>
> >> > <td><% =RS("Suma_Pagado")%></td>
> >> > </tr>
> >> > <% sumaI = sumaI + RS("Suma_Ingreso")
> >> > sumaP = sumaP + RS("Suma_Pagado")
> >> > RS.MoveNext
> >> > loop%>
> >> > <tr>
> >> > <td colspan="3"><hr color="#000000"></td>
> >> > </tr>
> >> > <tr>
> >> > <td><strong>Total</strong></td>
> >> > <td><% Response.Write " "&sumaI&"?"%></td>
> >> > <td><% Response.Write " "&sumaP&"?"%></td>
> >> > <td></td>
> >> > </tr>
> >> > <tr>
> >> > <td colspan="3"><hr color="#000000"></td>
> >> > </tr>
> >> > <tr>
> >> > <td colspan="3">
> >> > <% stringData(Month(Now)) %><br>
> >> > </td>
> >> > </tr>
> >> > <tr>
> >> > <td colspan="3">
> >> > </td>
> >> > </tr>
> >> > </table>
> >> > </div>
> >> > <% End if
> >> > RS.Close
> >> > set RS = Nothing
> >> > miconn.Close
> >> > set miconn = Nothing
> >> > %>
> >> >
> >> > "Matias Iacono" wrote:
> >> >
> >> >> Puedes colocar el codigo de tu pagina?
> >> >>
> >> >> Aparentemente estas tratando de acceder a un registro cuando el
> >> >> recordset
> >> >> se
> >> >> encuentra al final.
> >> >>
> >> >> Saludos.
> >> >>
> >> >> Microsoft MVP
> >> >> Orador Regional INETA
> >> >>
> >> >>
> >> >> "Aura" wrote:
> >> >>
> >> >> >
> >> >> > Hola !
> >> >> >
> >> >> > Tengo una consulta en las que muestro el resultado en una pagina
> >> >> > ASP. Y
> >> >> > me
> >> >> > da el siguiente error
> >> >> >
> >> >> > Tipo de error:
> >> >> > ADODB.Field (0x80020009)
> >> >> > El valor de BOF o EOF es True, o el actual registro se eliminó; la
> >> >> > operación
> >> >> > solicitada requiere un registro actual.
> >> >> >
> >> >> > Lo mas raro de todo,es que no me da ninguna linea de error. Y en
> >> >> > realidad,
> >> >> > en la bd Access el registro existe y la consulta se executa
> >> >> > correctamente.
> >> >> > Es posible que las consultas un poco largas den este tipo de error?
> >> >> >
> >> >> > Muchas gracias por la ayuda !
> >> >> > Un saludo
> >> >> >
> >>
> >> "mjge." wrote:
> >>yo tengo el mismo problema y no se como solicionarlo...la vrdad es que no se mucho de asp...como puedo solucionar este problema??


Tipo de error:
ADODB.Field (0x80020009)
El valor de BOF o EOF es True, o el actual registro se eliminó; la
operación solicitada requiere un registro actual.
Respuesta Responder a este mensaje
#10 mjge
29/09/2006 - 01:18 | Informe spam
mjge ha escrito:


> > >> "mjge." wrote:
> > >>yo tengo el mismo problema y no se como solicionarlo...la vrdad es que no se mucho de asp...como puedo solucionar este problema??
Tipo de error:
ADODB.Field (0x80020009)
El valor de BOF o EOF es True, o el actual registro se eliminó; la
operación solicitada requiere un registro actual.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida