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

Conocer el último registro insertado en una base de datos access

Estas en el tema de Conocer el último registro insertado en una base de datos access en el foro de ASP Clásico en Foros del Web. La cuestión es la siguiente: Necesito leer el último registro insertado en una tabla de una base de datos access, pero no puedo ordenarlo por ...
  #1 (permalink)  
Antiguo 10/03/2004, 04:37
 
Fecha de Ingreso: octubre-2003
Mensajes: 4
Antigüedad: 21 años, 7 meses
Puntos: 0
Conocer el último registro insertado en una base de datos access

La cuestión es la siguiente:
Necesito leer el último registro insertado en una tabla de una base de datos access, pero no puedo ordenarlo por ningún campo (ni por fecha, ni por id, pues la fecha no va a ser un dato fiable, y el id es alfanumérico).

¿Guarda access algún valor oculto por el cual conocer cual es el último registro insertado?
¿Alguien sabe como hacer esto?
  #2 (permalink)  
Antiguo 10/03/2004, 08:12
 
Fecha de Ingreso: octubre-2003
Mensajes: 85
Antigüedad: 21 años, 7 meses
Puntos: 0
Lo que se me ocurre que podrias hacer es usar la propiedad .RecordCount del objeto Recorset, con la cual logras obtener la cantidad total de registros en el recorset. Luego en el ciclo tener una variable que se vaya incrementando hasta que llegue a igualarse con la cantidad total de registros(Obtenido anteriormente por el .RecorCount). Cuando sean iguales, ya, has lo que vayas a hacer, salvar los campos en varibles o mostrarlos.

Espero que te sirva esa lógica.

Nota: Para que te funcione correctamente la propiedad .RecordCOunt, tienes que tener la propiedad CursorType en uno de los siguientes valores:
adOpenKeyset = 1
o
adOpenStatic = 3
__________________
ASP.Net - Relket - ASP.Net

Última edición por Relket; 10/03/2004 a las 08:18
  #3 (permalink)  
Antiguo 10/03/2004, 08:26
 
Fecha de Ingreso: octubre-2003
Mensajes: 4
Antigüedad: 21 años, 7 meses
Puntos: 0
Gracias Rejket, pero creo que no me sirve.

Me explico un poco mejor:
La tabla tiene dos campos: Id y nombre
El campo Id no es autonumérico. Ni siquiera numérico. Es alfanumérico.

Necesito saber cual ha sido el último Id introducido. ¿Cómo hago esa consulta?
Si hago "SELECT id FROM tabla " sin más, me entrega los datos desordenados.
Si hago "SELECT id FROM tabla ORDER by id" me devuelve los datos ordenados por id alfabeticamente, pero no es esto lo que quiero, pues la progresión de ids no responde a ese orden.

¿Cómo saber el último id introducido?.
  #4 (permalink)  
Antiguo 10/03/2004, 09:02
 
Fecha de Ingreso: octubre-2003
Mensajes: 85
Antigüedad: 21 años, 7 meses
Puntos: 0
Ahh ok,puedes hacer lo siguiente almacena en una variable el id del último registro insertado por ejemplo:
Luego de insertado el registro, con el método .MoveLast del recorset muevete al ultimo registro y salva el Id
LastID = Tabla("Id")

Luego podrías usar la siguiente consulta:
"SELECT id FROM tabla where id='" & LastID & "'"

Ejemplo de salvar el Id: TBL es el Recorset.

Código PHP:
TBL.Open
TBL
.Movelast
   
While NOT TBL.EOF
        LastID 
TBL("Id"
        
TBL.MoveNext      
   Wend 
TBL
.CLose 
Inlusive lo puedes hacer más corto:
Código PHP:
TBL.Open
TBL
.MoveLast
   LastID 
TBL("Id"
TBL.Close 
Ve a ver este.
__________________
ASP.Net - Relket - ASP.Net

Última edición por Relket; 10/03/2004 a las 09:08
  #5 (permalink)  
Antiguo 10/03/2004, 10:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 4
Antigüedad: 21 años, 7 meses
Puntos: 0
Hola Rekjet.
Podría ser una opción.
Tendríamos que crearnos otra tabla donde almacenar el última valor insertado. No hay problema. Pero ¿no hay una forma de leer el último registro insertado (al estilo de Oracle, que le pides el último rowid y te entrega el último registro insertado en la tabla)?
De cualquier modo, gracias por tu ayuda.

Salud!
  #6 (permalink)  
Antiguo 10/03/2004, 13:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 85
Antigüedad: 21 años, 7 meses
Puntos: 0
Bueno, el unico método hasta ahora que yo conozco es usando el método .MoveLast del recordset, el cual te ubica directamente en el último registro de una tabla. Pero si el problema es trabajar con esa ultima ID como variable normal(y para que no tengas que crear otra tabla), podrías almacenar el valor del ultimo ID en una variable de aplicación o de session dependiendo de lo que vayas a hacer:

Application("LastID") o Session("LastID")

Hasta aquí mi aporte, hasta ahora es lo unico que se me ocurre.
__________________
ASP.Net - Relket - ASP.Net
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 12:14.