Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 29-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
la principal desventaja de mi sistema es que tiende a generar huecos.
Los generadores se diseñaron para garantizar la unicidad en entornos multiusuario y no es relevante que sean consecutivos. Las 'brechas' numéricas son
muy normales con su uso.
El tema de los 'huecos' se presenta por ejemplo cuando: El usuario A obtiene el identificador 500, seguidamente el usuario B recibe el 501,
el C el 502, etc. Entonces el usuario A decide abortar haciendo un rollback, el generador continuará la secuencia sin importar la posición 500.

Para hacer códigos consecutivos podés incrementar un campo mediante un trigger y usar un procedimiento almacenado para obtener el próximo código.

Por ejemplo:
Código SQL [-]
SET TERM ^;
CREATE TRIGGER TABLA_CODIGO_AI FOR TABLA_CODIGO ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
  UPDATE TABLA_CODIGO SET NUM_CODIGO = NUM_CODIGO + 1;
END^

CREATE PROCEDURE SP_PROXIMOCODIGO RETURNS (PROXCOD CHAR(8))
AS
DECLARE VARIABLE NUMERO INTEGER;
BEGIN
  SELECT NUM_CODIGO FROM TABLA_CODIGO INTO NUMERO;
  NUMERO = NUMERO + 1;
  PROXCOD = LPAD(TRIM(CAST(NUMERO AS VARCHAR(8))), 8, '0');
END^
SET TERM ;^
El procedimiento te devolverá el próximo siguiente código. (00000001,00000002,00000003,..)

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 29-04-2011 a las 03:44:52.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cómo obtener el título del cd insertado? unreal4u API de Windows 4 09-07-2007 22:32:13
Obtener ID_Direccion recien insertado Durbed SQL 8 19-08-2005 02:57:58
¿Como leer el registro recien incluido? sitrico Conexión con bases de datos 6 30-07-2004 13:44:06
Obtener ClaveMaestra del registro insertado. jplj Conexión con bases de datos 11 20-05-2004 00:18:33
Obtener el último registro insertado mutant09 SQL 3 04-05-2004 20:59:21


La franja horaria es GMT +2. Ahora son las 21:43:04.


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