Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Obtener los Ultimos o los mas (https://www.clubdelphi.com/foros/showthread.php?t=48341)

JXJ 21-09-2007 22:14:55

Obtener los Ultimos o los mas
 
Hola...

Tengo este problema, de no saber como hacer en Firebird 2.0.x
para obtener el ultimo registro ingresado.
por que lo requiero usar para llenar unos datos en una forma.
tengo una tabla con campos autoincrementables..

Dijamos una forma de registro de usuarios.
del MainForm se hace click en un boton que habre una forma
de nuevos registros, ahi se ingresan los datos ,
despues se hace click
en aceptar
(hago un insert into tabla)
y se acaba de registrar un nuevo usuario,
entonces, si quiero mandar a imprimir su tarjeta de membresia
necesito obtener ese registro, que apenas se ingreso.
(segun yo asi funcionara bien.)

Este funcionamiento lo vi en una exposición ala que fui,
tomaban mis datos, y los mandaban a imprimir. para darme mi gafete
con mis datos y un codigo de barras e imagen de cuadritos.

Tambien requiero obtener los ultimos registros ingresados,
digamos, el top ten, o el top 20
segun sea necesario, los ultimos mas recientes, o los mas viejos, o los
que tienen mas fecha.


gracias por su ayuda

jhonny 21-09-2007 22:23:54

Para traer el Top 20:

Código SQL [-]
select First 20 * from Tabla_con_Datos
where (las condiciones necesarias)


El First 20 te traera los 20 primeros registros segun el resultado de la consulta, de manera que si jueguas con el order by podras obtener el resultado deseado.

Para imprimir el Ticket que mencionaste, pues me imagino que dicho registro llevara un codigo, usa ese codigo para encontrar el registro a manipular. No te recomiendo buscar siempre el ultimo porque podria suceder que dos personas se esten registrando casi que al mismo tiempo, entonces a los dos les imprimira el ticket del ultimo que hizo click en "registrar".

JXJ 21-09-2007 22:40:55

que buena idea.
jhonny

gracias.

Código SQL [-]
Select * from Tabla_con_Datos
 where Tabla_con_Datos_ID = (select max(Tabla_con_Datos_ID) from Tabla_con_Datos);

este sirve para obtener el ID mas alto o grande, del campo autoincrementable
suponiendo, que solo se registra uno por uno, y no hay dos o mas
ingresos, casi simultaneos.

jhonny 21-09-2007 22:54:35

Partiendo de la base que solo se puede registrar 1 por 1 y suponiendo que definitivamente no existe la manera de capturar inmediatamente dicho valor de dicha columna autoincrementable (Que me imagino sera el codigo), podrias hacer tambien:

Código SQL [-]
Select First 1 * from Tabla_con_Datos
order by Tabla_con_Datos_ID DESC

Eso tambien te traeria el ultimo ;).

JXJ 21-09-2007 23:39:30

a probarlos, jhonny gracias.


La franja horaria es GMT +2. Ahora son las 16:48:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi