Ver Mensaje Individual
  #12  
Antiguo 14-05-2015
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Reputación: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Las ventajas de las secuencias (llamadas generadores en Firebird) es que no son transaccionales y es imposible que dos peticiones "Next Value" obtengan el mismo valor. Te recomiendo que tu aplicación cliente, justo al comenzar la captura de un registro, pida a una secuencia/generador de la base de datos su siguiente valor y lo asignes en ese momento desde la propia aplicación al nuevo registro en memoria. Eso te permitirá un mejor control de relaciones entre registros.

Incluso si el registro no termina siendo guardado, no hay problema, las llaves primarias (campos ID) no tienen por qué ser números consecutivos; para eso son otros campos: NUMERO/CLAVE/CODIGO, para los cuales sí puedes hacer Select Max y tener un índice con restricción unique para impedir que se asigne el mismo valor a una lista de datos que deben ir numerados de forma consecutiva.

Saludos.
Responder Con Cita