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

Dificultad con paginacion

Estas en el tema de Dificultad con paginacion en el foro de ASP Clásico en Foros del Web. Espero que todos esten muy bien para asi solicitarles una ayuda. resulta que tome un codigo del foro para una paginacion utilizando base de datos ...
  #1 (permalink)  
Antiguo 08/02/2007, 08:57
Avatar de vpino  
Fecha de Ingreso: diciembre-2004
Ubicación: colombia
Mensajes: 265
Antigüedad: 20 años, 4 meses
Puntos: 0
Dificultad con paginacion

Espero que todos esten muy bien para asi solicitarles una ayuda.
resulta que tome un codigo del foro para una paginacion utilizando base de datos postgres y me esta generando el siguiente error.

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
El controlador ODBC no admite las propiedades solicitadas.
/cali/acmejoras.asp, línea 41

bajo sqlserver 2000 funciona sin problema alguno.

la linea 41 es la siguiente:
rs.Open SQL, oConn, 1, 2

aqui dejo el codigo completo:
<%
Dim oConn, rs, SQL
Dim PaginaActual ' en qué pagina estamos
Dim PaginasTotales ' cuántas páginas tenemos
Dim TamPagina ' cuantos registros por pagina
Dim CuantosRegistros ' la cuenta que os he mencionado

'MODIFICAR AQUI PARA CAMBIAR EL Nº DE REGISTRO POR PAGINA
TamPagina=10

'Leemos qué página mostrar. La primera vez será la inicial
if Request.Querystring("pagina")="" then
PaginaActual=1
else
PaginaActual=CInt(Request.Querystring("pagina"))
end if

'Creamos los objetos y definimos las propiedades del Recordset.


set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")

ordenado="order by
right(accion,4),cast(left(accion,charindex('/',accion)-1) as
int)"
oConn.Open
"Driver={PostgreSQL};Server=localhost;UID=postgres ;PWD=clave;Database=cali;"
SQL="select * from acmejoras a,am_fuentes f where
f.fuenteam_codigo=a.fuente "&ordenado&" "
' Defino el tamaño de las páginas
rs.PageSize=TamPagina
rs.CacheSize=TamPagina
' Abro el recordset
rs.Open SQL, oConn, 1, 2
'Cuento las páginas
PaginasTotales=rs.PageCount
'Compruebo que la pagina actual está en el rango
if PaginaActual < 1 then
PaginaActual = 1
end if
if PaginaActual > PaginasTotales then
PaginaActual = PaginasTotales
end if
'Vamos a entrar ya en la paginación propiamente dicha. Primero comprobamos
que la consulta nos ha devuelto datos, y luego paginamos. Llevamos en
CuantosRegistros la cuenta del nº de filas que hemos sacado. Cuando llevemos
TamPagina filas (10 en este caso), nos detenemos.

'Por si la consulta no devuelve registros!
if PaginasTotales=0 then
Response.Write("No se encontraron resultados.")
else
'Vamos a paginar
rs.AbsolutePage=PaginaActual
Response.Write("Pagina " & PaginaActual & " de " & PaginasTotales)
Response.Write("<br><br>")
Response.Write("<TABLE BORDER=""1"" ALIGN=""center"">")
Response.Write("<TR><TD COLSPAN=""3""><B>RESULTADOS</B></TD>")
CuantosRegistros=0
do while not rs.EOF and CuantosRegistros < TamPagina
'Pinto una línea de la tabla por cada registro
Response.Write("<TR>"&VbCrLf)
Response.Write("<TD>"&rs.Fields("accion")&"</TD>")
Response.Write("<TD>"&rs.Fields("situacion")&"</TD>")
Response.Write("<TD>"&rs.Fields("proposito")&"</TD>")
Response.Write("</TR>")
CuantosRegistros=CuantosRegistros+1
rs.MoveNext
loop
Response.Write("</TABLE>")
end if
rs.Close
oConn.Close
set rs=nothing
set oConn=nothing
'Ya hemos terminado, nos falta poner los enlaces para avanzar o retroceder.
Vamos a ello:
'Muestro los enlaces
Response.Write("<hr>")
if PaginaActual > 1 then
Response.Write("<A HREF=rspagina.asp?pagina="& PaginaActual-1& _
">10 Anteriores</A> ")
end if
if PaginaActual < PaginasTotales then
Response.Write("<A HREF=rspagina.asp?pagina=" & PaginaActual+1 & _
">10 Siguientes</A>")
end if
%>

buena suerte para todos
  #2 (permalink)  
Antiguo 08/02/2007, 09:06
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Dificultad con paginacion

¿Que tienes en la variable SQL? ¿que BD dices que usas? ¿cual es tu cadena de conexion?
  #3 (permalink)  
Antiguo 08/02/2007, 12:35
Avatar de vpino  
Fecha de Ingreso: diciembre-2004
Ubicación: colombia
Mensajes: 265
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: Dificultad con paginacion

Hola myakire. gracias por tu respuesta. te cuento:
En SQL tengo el query
SQL="select * from acmejoras a,am_fuentes f where
f.fuenteam_codigo=a.fuente "&ordenado&" "
donde ordenado es la condicion

Estoy Utilizando base de datos Postgresql bajo windows de manera local(no hay red)

mi cadena de conexion es la siguiente:
set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "Driver=PostgreSQL};Server=localhost;UID=postg res ;PWD=clave;Database=cali;"

Lo curioso del caso es que puedo ejecutar varios programas que inserta, actualiza y retira registros de la base de datos (tambien en postgres porque son de este modulo), solo tengo problemas con la paginacion y es por esa linea "rs.Open SQL, oConn, 1, 2".

Esta misma aplicacion la tengo conectada a sql server y funciona sin problemas.

mil gracias por cualquier ayuda
  #4 (permalink)  
Antiguo 08/02/2007, 16:09
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Dificultad con paginacion

mmmm, pues si el problema es solo con el RecordSet, casi estoy seguro que es por que tu controlador no soporta el tipo de Cursor.

Prueba, cambiándolo por algún otro de esta lista

Saludos
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 10:59.