Crear clave en delphi

Hola que tal, pues aquí con una molestia, fíjate que tengo un problema para crear claves, deja te cuento:
Tengo una base de datos en donde se capturan reportes, y a cada reporte se le asigna un numero de reporte consecutivo, lo quise poner autonumérico, pero me brinca números, y opte por poner en la base de datos un tipo de dato numérico, para que lo fuera creando el sistema automáticamente, y lo creo tomando el numero de registros + 1 y hasta ahí todo bien, pero al sistema acceden 5 personas al mismo tiempo y me empezó a crear valores duplicados y lo que hice fue poner una tabla en la base de datos con un campo booleano y lo que hace que el primero que entre lo activa y las demás computadoras están en espera a que se desactive el campo para acceder a guardar los datos, empezó a jalar muy bien pero ahora se bloquea a cada rato, por que se mete una computadora y se bloquea y deja activado el campo y no deja que las demás pc's guarden sus datos, y quisiera saber algún algoritmo para poder crear esa clave consecutiva si que se cree valores dupliacados y sin que se bloquee por lo del campo booleano
Espero y me puedas ayudar mil gracias de antemano
Atentamente Jakob
Respuesta
1
Yo he hecho servidores de reporte y en esos casos he usado tres tipos de soluciones.
La Primera: Creo una tabla aparte donde yo le asigno Nro de correlativo, cuando los PCs van a crear reportes consultan esa tabla, Toman su valor para el reporte y lo incrementan, para que el próximo PC haga lo mismo.
La Segunda: Creo la misma tabla pero con un campo adicional de Identificación de PC, yo lo llamo IdMaquina, a cada PC le asigno un numero de Identificación. Como son 5 PCs mi tabla tendría 5 correlativos, uno para cada maquina.
La Tercera: Es no usar correlativos sino usar la fecha y hora, por supuesto la fecha y hora la conviertes en un Numero y la colocas en el campo de correlativos. Ejemplo: 05/08/2005 10:20:30 La conviertes en esto 20050508102030 <- Como veras de una concatenacion de YYYYMMDDHHmmss y alli tendras la seguridad de no haber duplicados. Pero hazlo con Hora militar!
Pruébalo y cualquier cosa no dudes en volverme a escribir.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas