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

si tengo 1000 registros recoger los últimos 900

Estas en el tema de si tengo 1000 registros recoger los últimos 900 en el foro de ASP Clásico en Foros del Web. Bien veamos, tengo uma base de datos en la cual me va contando cuantas veces se a descargado un usuario un archivo, lo que quiero ...
  #1 (permalink)  
Antiguo 20/06/2003, 11:47
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
si tengo 1000 registros recoger los últimos 900

Bien veamos, tengo uma base de datos en la cual me va contando cuantas veces se a descargado un usuario un archivo, lo que quiero es que me muestre solo los 100 últimos, es ya etá lo hago con esto:

strSQL = "SELECT top 100 * FROM tblContador order by Fecha desc"

Pero ahora la pregunta para ir descargando información de esa tabla y poder pasarla a otra como le digo que me selecciones los siguientes 900 o los siguientes registros a partir del número 100???

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
  #2 (permalink)  
Antiguo 20/06/2003, 13:02
Avatar de damargon  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 386
Antigüedad: 21 años, 10 meses
Puntos: 3
Hola, hay una propiedad de los recordset que te devuelve en qué posición se encuentra de dicho recordset

rs.AbsolutePosition = X (siendo X el número de registro que cumple strSQL)

Con una condición del tipo

if rs.AbsolutePosition>100 then

lo que quieras hacer con ese registro (modificar, borrar, etc)

end if


Espero te sirva para mantener limpita la tabla.

Saludos
  #3 (permalink)  
Antiguo 21/06/2003, 20:31
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
Gracias damargon, no conocía esa propiedad, el lunes probaré haber que sucede.

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
  #4 (permalink)  
Antiguo 23/06/2003, 06:12
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
Hola de nuevo, he estado provando esta propiedad, pero no he conseguido que funcione, tengo esto:

Set rst = Server.CreateObject("ADODB.Recordset")


'he provado a poner lo de Top 100, pero tampoco funciona
strSQLt = "SELECT * FROM tblContador order by Fecha desc"

'Query the database
rst.Open strSQLt, strCon,3, 3

rst.AbsolutePosition = 7
response.write "<font color='ffffff'>"&rst.AbsolutePosition&"</font>"

if rst.AbsolutePosition > 7 then

response.write "<font color='ffffff'>es mas de 6</font>"

end if

pero siempre me sale un número negativo generalmente -1

Ene stos momentos en la BDs de pruebas tengo 7 registros, en la X, cuando me dices que tiene que ser el número de registro que cumple strSQL, ahí cuantos registros le debería poner los que tiene la BD??? o sea 7 en este caso???

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
  #5 (permalink)  
Antiguo 24/06/2003, 04:40
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
He estado probando y de la única forma que me muestra los registros que hay en mi tabla es de esta forma:

Código PHP:
Set rst Server.CreateObject("ADODB.Recordset")


'Initalise the strSQL variable with an SQL statement to query the database
strSQLt = "SELECT * FROM tblContador"


'
Query the database
rst
.Open strSQLtstrCon,,3


'o bien así
rst.Pagesize=1
total=rst.PageCount  

response.write "<font color='
ffffff'>"&total&"</font><br>"

'
o así
cuantos
=rst.recordcount
response
.write "<font color='ffffff'>"&cuantos&"</font><br>"

'en cambio el AbsolutePosition me pone que es -1
'
lugar rst.AbsolutePosition
'response.write "<font color='ffffff>"&lugar&"</font>
Bien lo que quiero con esto es que me muestre los 100 últimos registros en pantalla,e sto lo consigo con:

strSQL = "SELECT top 100 * FROM tblContador order by Fecha desc"

y que el resto si lo hay me lo meta en otra tabla, en el histórico, entonces eso como lo puedo hacer, si le digo:

if rst.PageCount > 100 then

Aquí como le digo para que me recoja el resto de los registros??? es decir desde la 101 hasta el final????

Un salduo
__________________
asp, php, .net, adaptandose a las necesidades
  #6 (permalink)  
Antiguo 24/06/2003, 08:07
Avatar de damargon  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 386
Antigüedad: 21 años, 10 meses
Puntos: 3
Pero es que si le dices: Select top 100... solo te coge los 100 últimos. Para que puedas manipular el resto de registros tendrás que hacer otra select quitando el "top 100"

Saludos
  #7 (permalink)  
Antiguo 24/06/2003, 11:21
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 24 años, 1 mes
Puntos: 2
rst.Open strSQLt, strCon,3 ,3


no se si estos dos numeros que pones al final son el cursorType y el lockType (no lo seuelo usar asi).....Pero si no lo son, creo que te da -1 esa propiedad por que no tienes definido el cursor adecuado para manejar el recordset. Utiliza por ejemplo:

Set rst = Server.CreateObject("ADODB.Recordset")

rst.cursorType = 2



ToKaTa.
  #8 (permalink)  
Antiguo 25/06/2003, 02:33
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
Gracias a todos ya está solucionado, he tenido que poner el cursor como 3 ya que en 2 no funcionaba:

Código PHP:
Set rs2 Server.CreateObject("ADODB.Recordset")

rs2.cursorType 3


'Initalise the strSQL variable with an SQL statement to query the database
strSQL2 = "SELECT * FROM tblContador order by Fecha desc"

'
Query the database
rs2
.Open strSQL2strCon

rs2
.Absoluteposition=

response
.write "<font color='000000'>ID = "&RS2("ID")&"</font>" 
Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
  #9 (permalink)  
Antiguo 25/06/2003, 02:55
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 24 años, 1 mes
Puntos: 2
curioso.......por que la unica diferencia entre el cursor 2 y el 3 es que el 2 no te deja ver los cambios realizados en la tabla por otro recordset, mientras que el 3 si te deja..........sea como fuere me alegra que ya lo hayas solucionado





ToKaTa.
  #10 (permalink)  
Antiguo 25/06/2003, 02:56
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 24 años, 1 mes
Puntos: 2
P.D.: A bueno, ademas, el 3 en teoria no permite modificaciones en los registros...
  #11 (permalink)  
Antiguo 25/06/2003, 04:17
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
Gracias ToKaTa, ahora, jeje, tengo otro pequeño problemilla, veamos con el Absoluteposition, yo le marco la posición desde la que quiero empezar y después recojo cual es el último valor que hay en la base de datos, así que recojo por ejemplo unos Ids que son del Absoluteposition = 101 y el último es el 120, así que lo que necesito es que por ejemplo desde el ID = 120 hasta el ID = 150 me los borre, como le puedo pasar para que me borre desde el ID 120 al ID 150???

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
  #12 (permalink)  
Antiguo 25/06/2003, 04:26
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
, es con between, jeje, bueno voy a ver si sale.

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
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 23:26.