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)
-   -   Insertar filas en medio de una tabla (https://www.clubdelphi.com/foros/showthread.php?t=95244)

jafera 15-06-2021 13:05:12

Insertar filas en medio de una tabla
 
Buenos dias a todos.


Después de un tiempo sin venir por aquí y sin tocar Delphi, he tenido la necesidad de recuperar un mini proyecto que realicé hace un tiempo y que utilizo para hacer la clasificación de una carrera ciclista por numero de vueltas.
Una vez tengo entrados los dorsales que participan en la prueba, abro una nueva pantalla que es el paso de la vuelta a la que voy añadiendo los dorsales que cruzan la linea en cada momento, asignado un numero de orden, numero de vuelta y dorsal.
Todo funciona bien si no se comete ningun error y como los humanos somos propensos a equivocarnos, ayer haciendo una prueba deje un dorsal por entrar y con las tablas Firebird, no tengo opción o no he sabido como poder insertar un registro en medio de dos ya entrados y que recalcule el campo orden.
Se que en tablas tipo access, esto se puede hacer, por lo que mi pregunta es si alguien sabe de otra base de datos que permita hacer esta acción facilmente.
Ejemplo


Dorsal Vuelta Orden
425 1 1
328 1 2
175 1 3

Repaso y me doy cuenta que entre el 328 y el 175, debo insertar el 555, aquí mi problema

Si alguien tiene una respuesta que me alumbre, pues sera bien agradecida como de costumbre.

Saludos

Josep

kuan-yiu 15-06-2021 14:10:17

Sin conocer exactamente tus tablas podrías hacer algo así.
* Primero debes modificar las tuplas siguientes:
Código SQL [-]
update tuTabla set orden=orden+1
where orden>=3
* Y luego añadir la tupla que te falta:
Código SQL [-]
insert into tuTabla (dorsal, vuelta, orden) values (555, 1, 3)

movorack 15-06-2021 22:16:16

O hacer ese update en un trigger


La franja horaria es GMT +2. Ahora son las 09:16:04.

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