Generadores en interbase

Fíjate que tengo un problema con los generadores, mira en la base de datos tengo un generador, el cual me genera el numero de cliente, pero este se queda actualizado aun haciendo un rollback.
Imaginemos que entran dos usuarios a uno le toca el numero 10 y al otro el 11 si al usuario 1 hace rollbak, ese numero ya se perdió porque al entrar de nuevo, el generador nos dará el 12 .
El script es del generador es el siguiente:
CREATE GENERATOR GCLIENTE;
SET GENERATOR GCLIENTE to 0;
SET TERM/;
CREATE TRIGGER GNCTE FOR CLIENTES
BEFORE INSERT
AS
BEGIN
NEW.ID_CLIENTE=GEN_ID(GCLIENTE,1);
END;/
SET TERM;/
Quizás para este caso se resolvería cambiando el BEFORE INSERT por AFTER INSERT, el problema mayor es cuando usamos MAESTRO-DETALLE (FACTURA), ya que no podríamos insertar ningún detalle hasta que guardemos el maestro...
Tienes alguna opción mejor para solucionar esto.

1 Respuesta

Respuesta
1
En algunos casos lo que yo he echo es crear una tabla que contiene una entrada por tabla en tu BD. En cada entrada me guardo el siguiente código que se asignará en cada tabla.:
Clientes 4
Proveedores 1
...
Así en lugar de usar un generador consulto la tabla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas