Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2007, 08:57
Avatar de vpino
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