Cita:
Empezado por Lepe
...También puedes usar un:
Código SQL [-]
select Max(codigo) +1 from tabla
Pero esto tiene el problema de funcionamiento en red, cuando dos usuarios distintos quieren crear un cliente, a ambos se le da el mismo número...
|
No si la tabla tiene establecido un índice de tipo
único sobre el campo en cuestión. En cuyo caso, para el segundo usuario, se elevaría una excepción que podría ser atrapada para entonces intentar de nuevo la operación haciendo otra vez la consulta "Select Max".
Esto considerando que la transacción usada para el guardado no demore más tiempo de lo que se requiere para insertar un registro y sus posibles detalles en la base de datos. Comento esto último porque, de otra forma, el segundo usuario podría verse obligado a esperar una cantidad de tiempo considerable (ya sea por bloqueo de la primera transacción o por no estar "visible" aún el nuevo valor máximo).
Saludos.
Al González.
![Smilie](http://www.clubdelphi.com/foros/images/smilies/smile.gif)