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

Recordest en MySQL

Estas en el tema de Recordest en MySQL en el foro de ASP Clásico en Foros del Web. Necesito una ayuda... Tengo un recorset en MySQL y necesito paginar una tabla, y me da el siguiente error: Tipo de error: ADODB.Recordset (0x800A0CB3) El ...
  #1 (permalink)  
Antiguo 16/01/2006, 14:05
Avatar de Boxmaster  
Fecha de Ingreso: agosto-2004
Ubicación: Ahorita... frente a mi PC
Mensajes: 74
Antigüedad: 20 años, 9 meses
Puntos: 0
Exclamación Recordest en MySQL

Necesito una ayuda...

Tengo un recorset en MySQL y necesito paginar una tabla,
y me da el siguiente error:

Tipo de error:
ADODB.Recordset (0x800A0CB3)
El recordset actual no admite marcadores. Puede deberse a una limitación del proveedor o del tipo de cursor seleccionado.
/miepi/paginar.asp, línea 52


El codigo es el siguiente:

<%
Dim mostrar
Dim cant_paginas
Dim pagina_actual
Dim registro_mostrado
Dim I

mostrar = 10


If Request.QueryString("page") = "" Then
pagina_actual = 1
Else
pagina_actual = CInt(Request.QueryString("page"))
End If

strQuery = "SELECT * FROM lista"

Dim Conn
Dim conn_string

conn_string = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=EBV;USER=root;PA SSWORD=123;OPTION=3;"

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open(conn_string)

strQuery = "SELECT * FROM Lista"
Set RS = Conn.Execute(strQuery)

RS.PageSize = mostrar
RS.CacheSize = mostrar

cant_paginas = RS.PageCount


If pagina_actual > cant_paginas Then pagina_actual = cant_paginas
If pagina_actual < 1 Then pagina_actual = 1


If cant_paginas = 0 Then
Response.Write "No hay registros..."
Else

RS.AbsolutePage = pagina_actual

%>
<FONT SIZE="+1">Página <B><%= pagina_actual %></B> de <B><%= cant_paginas %></B></FONT>
<%

Response.Write "<BR><BR>" & vbCrLf

Response.Write "<TABLE BORDER=""1"">" & vbCrLf

Response.Write vbTab & "<TR>" & vbCrLf
For I = 0 To RS.Fields.Count - 1
Response.Write vbTab & vbTab & "<TD><B>"
Response.Write RS.Fields(I).Name
Response.Write "<B></TD>" & vbCrLf
Next
Response.Write vbTab & "</TR>" & vbCrLf


registro_mostrado = 0
Do While registro_mostrado < mostrar And Not RS.EOF
Response.Write vbTab & "<TR>" & vbCrLf
For I = 0 To RS.Fields.Count - 1
Response.Write vbTab & vbTab & "<TD>"
Response.Write RS.Fields(I)
Response.Write "</TD>" & vbCrLf
Next
Response.Write vbTab & "</TR>" & vbCrLf


registro_mostrado = registro_mostrado + 1

RS.MoveNext
Loop


Response.Write "</TABLE>" & vbCrLf
End If


RS.Close
Set RS = Nothing
oConn.Close
Set oConn = Nothing


If pagina_actual > 1 Then
%>
<a href="./paginar.asp?eje=30&page=<%= pagina_actual - 1 %>">[<< Anterior]</a>
<%
End If


For I = 1 To cant_paginas
If I = pagina_actual Then
%>
<%= I %>
<%
Else
%>
<a href="./paginar.asp?eje=30&page=<%= I %>"><%= I %></a>
<%
End If
Next

If pagina_actual < cant_paginas Then
%>
<a href="./paginar.asp?eje=30&page=<%= pagina_actual + 1 %>">[Próximo >>]</a>
<%
End If

%>
  #2 (permalink)  
Antiguo 16/01/2006, 14:52
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 20 años, 6 meses
Puntos: 0
prueba con esto:

declara las siguientes variables

Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adUseClient = 3

y en el recordset pones

sql = "select id_producto, titulo, descripcion, archivo, puntaje from producto"
set rsCarrito = server.CreateObject("adodb.recordset")
rsCarrito.PageSize = TamPagina
rsCarrito.CacheSize = TamPagina
rsCarrito.CursorType = adOpenKeyset
rsCarrito.LockType = adLockOptimistic
rsCarrito.CursorLocation = adUseClient
rsCarrito.open sql, conexion , 1 , 2
'PaginasTotales = rsCarrito.PageCount

esto hacemas tolerante la consulta.
  #3 (permalink)  
Antiguo 16/01/2006, 15:02
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Habia por ahi un codigo para paginar con MySQL, busca en los mensajes de Lexus.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 16/01/2006, 19:16
Avatar de tomchat  
Fecha de Ingreso: septiembre-2005
Mensajes: 231
Antigüedad: 19 años, 8 meses
Puntos: 0
debes usar solo consultas con limitadores, utiliza una consulta para saber cuantos registro tienes y creas una funcion para empaginar deacuerdo al resultado y otra consulta para mostrar tus resultados. Si necesitas mas ayuda avisa.
  #5 (permalink)  
Antiguo 16/01/2006, 20:17
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 4 meses
Puntos: 4
recordcount no funciona para mysql
debes usar limit
ejemplo;
strQuery = "SELECT * FROM Lista limit 0,50"
esto te muestra los regustros desde el 0 hasta el 50

puedes colocar variables reemplazando el 0 y el 50 para que vayas recorriendo los registros hasta llegar al final

espero te haya servido

recuerda que las mismas propiedades qeu usas para access o sql server no funcionan para mysql.
como estas
rsCarrito.PageCount
rsCarrito.count
no funcionan en mysql.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #6 (permalink)  
Antiguo 16/01/2006, 21:53
Avatar de Boxmaster  
Fecha de Ingreso: agosto-2004
Ubicación: Ahorita... frente a mi PC
Mensajes: 74
Antigüedad: 20 años, 9 meses
Puntos: 0
Gracias, es que por mucho rato use Access y SQl Server, ahora estoy probando en MySQL.

Es bueno probar otras tecnologias, probare como dice Lexus.

Y espero tener suerte.

Gracias de antemano.
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 16:29.