Ver Mensaje Individual
  #13  
Antiguo 31-10-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 30
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
Cita:
Empezado por Lepe Ver Mensaje
...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.

Última edición por Al González fecha: 31-10-2008 a las 20:46:42.
Responder Con Cita