Foros del Web » Programando para Internet » ASP Clásico »

For... Next

Estas en el tema de For... Next en el foro de ASP Clásico en Foros del Web. Hola estoy haciendo unaq consulta pero solo quiero 3 registros y me salta este error ADODB.Field error '80020009' Either BOF or EOF is True, or ...
  #1 (permalink)  
Antiguo 21/04/2003, 16:49
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 22 años, 5 meses
Puntos: 1
For... Next

Hola estoy haciendo unaq consulta pero solo quiero 3 registros
y me salta este error

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/test/mur/buscar.asp, line 0


codigo:

<%
If Rs.BOF and Rs.EOF THEN
Response.Write "No se encontraron registros acorde a su busqueda"
ELSE
DIM cuenta
FOR cuenta=0 TO 3 Step 1
intTotalRecords = rs.RecordCount
Randomize()
intRandomNumber = Int((intTotalRecords * Rnd))
rs.Move intRandomNumber
If (cuenta=3) Then
Response.Write "Ha terminado el bucle..."
END IF
Next
'Cerramos y limpiamos (como siempre).
RS.Close
oConn.close
Set RS = Nothing
Set oConn = Nothing
End If
%>

Gracias de antemano
  #2 (permalink)  
Antiguo 21/04/2003, 17:08
Avatar de MsTech.DotNet  
Fecha de Ingreso: marzo-2003
Ubicación: Maracay - Edo. Aragua
Mensajes: 605
Antigüedad: 21 años, 2 meses
Puntos: 0
Hola eduvivi...

Con respecto a esto..

If RS.BOF and RS.EOF.....

Deberias poner..

If RS.EOF......

O intenta asi..

If Not (RS.BOF And RS.EOF) Then
Implementacion....
Else
Response.Write("No existen registros")
End If

Prueba asi a ver porque de lo demas el codigo se ve bien...

Saludos...
__________________
Ing. Javier Ugalde
Desarrollador de Aplicaciones Web / Windows
Director de Desarrollos Web
Ing. en Información
Email: [email protected]
Telf. Hab: +[58] - (243) - 232.02.06
Telf. Cel: +[58] - (414) - 455.26.80

Última edición por MsTech.DotNet; 21/04/2003 a las 17:12
  #3 (permalink)  
Antiguo 21/04/2003, 17:20
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 22 años, 5 meses
Puntos: 1
Sigue saltando el mismo error, un detalle que se me olvido es que me muestra 2 registros y despues salta el error, ya mire en la BD a ver si solo hay 2 pero hay mas de 6 registros que coinciden con la busqueda
  #4 (permalink)  
Antiguo 21/04/2003, 17:30
Avatar de MsTech.DotNet  
Fecha de Ingreso: marzo-2003
Ubicación: Maracay - Edo. Aragua
Mensajes: 605
Antigüedad: 21 años, 2 meses
Puntos: 0
Hola amigo... vamos a hacer algo... pon el codigo completo para yo probarlo y ver si te puedo ayudar.... vale?? yo creo la base de datos y todo ....

Me imagino que el codigo que falta es el de la conexion a la bd, la creaccion de los recordsets , la consulta y mas nada cierto???

Saludos...
__________________
Ing. Javier Ugalde
Desarrollador de Aplicaciones Web / Windows
Director de Desarrollos Web
Ing. en Información
Email: [email protected]
Telf. Hab: +[58] - (243) - 232.02.06
Telf. Cel: +[58] - (414) - 455.26.80
  #5 (permalink)  
Antiguo 21/04/2003, 17:52
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 22 años, 5 meses
Puntos: 1
Ok ahi va....


<%
Dim buscar
buscar= Trim(Request("buscar") )
buscar=Replace(Request("buscar"),"'", "''")

'*****************************
' Conectamos a la BD.
Set oConn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.Recordset")
oConn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("clientes.mdb")
' seleccionamos todos los registros.
sql = "SELECT * FROM datos WHERE ((grupo = 'patrocinador') AND (pclaves LIKE '%" & buscar & "%' OR nombre LIKE '%" & buscar & "%' OR descripcion LIKE '%" & buscar & "%')) "
RS.OPEN sql, oConn, 3, 1
If Rs.EOF and Rs.BOF THEN
Response.Write "No se encontraron registros acorde a su busqueda en la sección PATROCINADORES"
ELSE
DIM cuenta
FOR cuenta=0 TO 3 Step 1
intTotalRecords = rs.RecordCount
Randomize()
intRandomNumber = Int((intTotalRecords * Rnd))
rs.Move intRandomNumber
%>
<b><font color="#FF0033"><br>
</font></b> </strong></font><b><font face="Verdana, Arial, Helvetica, sans-serif"><b><font face="Verdana, Arial, Helvetica, sans-serif"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FF0033"><%=RS("nombre")%></font></b></font><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FF0033"><br>
<%=RS("descripcion")%><br>
</font><font face="Verdana, Arial, Helvetica, sans-serif"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FF0033"><%=RS("url")%></font></b></font><br>
</b></font></b><font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>
<%
If (cuenta=3) Then
Response.Write "Ha terminado el bucle..."
END IF
Next
'Cerramos y limpiamos (como siempre).
RS.Close
oConn.close
Set RS = Nothing
Set oConn = Nothing
End If
%>

Ahi esta todo completo
  #6 (permalink)  
Antiguo 21/04/2003, 18:11
Avatar de MsTech.DotNet  
Fecha de Ingreso: marzo-2003
Ubicación: Maracay - Edo. Aragua
Mensajes: 605
Antigüedad: 21 años, 2 meses
Puntos: 0
Hola Amigo...

Pruebalo asi...

<%
Dim buscar
buscar= Trim(Request("buscar") )
buscar=Replace(Request("buscar"),"'", "''")

'*****************************
' Conectamos a la BD.
Set oConn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.Recordset")
oConn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("clientes.mdb")
' seleccionamos todos los registros.
sql = "SELECT * FROM datos WHERE ((grupo = 'patrocinador') AND (pclaves LIKE '%" & buscar & "%' OR nombre LIKE '%" & buscar & "%' OR descripcion LIKE '%" & buscar & "%')) "
RS.OPEN sql, oConn, 3, 1
If Not Rs.EOF THEN
DIM cuenta
FOR cuenta=1 TO 3 Step 1
intTotalRecords = rs.RecordCount
Randomize()
intRandomNumber = Int((intTotalRecords * Rnd))
rs.Move intRandomNumber
%>
<b><font color="#FF0033"><br>
</font></b> </strong></font><b><font face="Verdana, Arial, Helvetica, sans-serif"><b><font face="Verdana, Arial, Helvetica, sans-serif"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FF0033"><%=RS("nombre")%></font></b></font><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FF0033"><br>
<%=RS("descripcion")%><br>
</font><font face="Verdana, Arial, Helvetica, sans-serif"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FF0033"><%=RS("url")%></font></b></font><br>
</b></font></b><font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>
<%
If (cuenta=3) Then
Response.Write "Ha terminado el bucle..."
END IF
Next
'Cerramos y limpiamos (como siempre).
RS.Close
oConn.close
Set RS = Nothing
Set oConn = Nothing
Else
Response.Write "No se encontraron registros acorde a su busqueda en la sección PATROCINADORES"
End If
%>

Me funciono a medias... es decir... me mostraba todos los registros osea solo 3 y hacia el random pero de vez en cuando fallaba y salia el error El valor de BOF o EOF es True....

Intenta con este a ver... yo seguire intentando a ver que puede ser... pero es extraño de verdad....

Saludos...
__________________
Ing. Javier Ugalde
Desarrollador de Aplicaciones Web / Windows
Director de Desarrollos Web
Ing. en Información
Email: [email protected]
Telf. Hab: +[58] - (243) - 232.02.06
Telf. Cel: +[58] - (414) - 455.26.80

Última edición por MsTech.DotNet; 21/04/2003 a las 18:32
  #7 (permalink)  
Antiguo 21/04/2003, 18:22
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 22 años, 5 meses
Puntos: 1
Hola MsTech.DotNet, la verdad es muy extraño ahora esta funcionando perfectamente, debe ser el cambio en la ubicación de la condición.

Bueno pero al fin me resolviste el problema, lo solucionaste olimpicamente, asi que un millón de gracias y cuando me necesites aqui estoy.
  #8 (permalink)  
Antiguo 21/04/2003, 18:25
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 22 años, 5 meses
Puntos: 1
Bueno me psao lo que dijiste a veces funciona pero en ocaciones salta el error, ahora si que me emborracharon
  #9 (permalink)  
Antiguo 21/04/2003, 18:25
Avatar de MsTech.DotNet  
Fecha de Ingreso: marzo-2003
Ubicación: Maracay - Edo. Aragua
Mensajes: 605
Antigüedad: 21 años, 2 meses
Puntos: 0
Jajajajajajajaja me lo imagine quizas a mi me fallaba pero era por el cache de mi PC, pero dije, funciona seguido y de vez en cuando cae error, debe ser el cache...

Me alegra mucho que te funcione perfectamente y sobretodo haberte ayudado en tu problema...

Yo tambien estoy a la orden para lo que sea....

Cualquier cosa que necesites solo avisa..

Saludos...
__________________
Ing. Javier Ugalde
Desarrollador de Aplicaciones Web / Windows
Director de Desarrollos Web
Ing. en Información
Email: [email protected]
Telf. Hab: +[58] - (243) - 232.02.06
Telf. Cel: +[58] - (414) - 455.26.80
  #10 (permalink)  
Antiguo 21/04/2003, 18:27
Avatar de MsTech.DotNet  
Fecha de Ingreso: marzo-2003
Ubicación: Maracay - Edo. Aragua
Mensajes: 605
Antigüedad: 21 años, 2 meses
Puntos: 0
Y no sera el cache..???

Bueno entonces tendriamos que revisar a ver que puede ser... pero el codigo lo vi bien... no encontre mas nada raro... quizas sea la parte en la que haces el replace... o quizas sea el Select que este fallando....

Estaré revisando y te aviso...

Saludos...
__________________
Ing. Javier Ugalde
Desarrollador de Aplicaciones Web / Windows
Director de Desarrollos Web
Ing. en Información
Email: [email protected]
Telf. Hab: +[58] - (243) - 232.02.06
Telf. Cel: +[58] - (414) - 455.26.80
  #11 (permalink)  
Antiguo 21/04/2003, 18:32
Avatar de MsTech.DotNet  
Fecha de Ingreso: marzo-2003
Ubicación: Maracay - Edo. Aragua
Mensajes: 605
Antigüedad: 21 años, 2 meses
Puntos: 0
Uppps mira revisa el codigo que puse que me equivoque y puse If Not RS.BOF Then y es If Not RS.EOF Then

Sigo probando a ver que sea... ya comprobe que el Select no es...

Saludos...
__________________
Ing. Javier Ugalde
Desarrollador de Aplicaciones Web / Windows
Director de Desarrollos Web
Ing. en Información
Email: [email protected]
Telf. Hab: +[58] - (243) - 232.02.06
Telf. Cel: +[58] - (414) - 455.26.80
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:03.