Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 09-04-2015
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.939
Poder: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por camiz Ver Mensaje
¿ Como hago para decirle al otro usuario que el codigo 000001 es mio y por lo tanto el tiene que generar el 000002 ?
9 de cada 10, esa es la idea equivocada. Como te explicaron, la forma correcta es usar un campo autonumerico (IDENTITY en sql server) y dejar que la BD se encargue del tema.

Porque es equivocada?

Porque genera un punto de contención (= un cuello de botella) en la BD, asi que ha menos que tengas que *garantizar* por regulacion que hay un consecutivo fijo (como en ciertos paises con las facturas), no te pongas en esas.

Ademas, es *ideal* que las claves de las tablas *carezcan* de sentido en la logica de negocios, y solo sirvan como punteros para llegar al registro, hacer relaciones y demas. Son las claves naturales (como # de cedula, nombre pais) las que le importan al usuario, y esas tienden a ser unicas.

Ademas, hacer esto desde Delphi? eso ya ES TARDE. Del lado del cliente ya ha pasado tiempo (mas aun si el servidor se accede remoto) y pa rematar el usuario se puede ir a tomar un cafe o dejar un proceso a medias. Todo esto se debe hacer directamente desde el motor, para reducir el margen de contención.

Solo hay UN caso de uso donde se puede desde el cliente generar IDS: si estos son del tipo GUID o similares.

-----

Pa no dejarte en ascuas, la forma tradicional es usar una tabla de consecutivos (con tabla, campo, siguiente consecutivo), y con triggers se obtiene y aumentan los tales y se asignan al campo en particular.

Pero NO lo hagas si es solo algo "estetico" o por que si. Las facturas/documentos legales es quizas de los pocos casos donde es una solucion valida.
__________________
El malabarista.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
generar codigo SQL enriqueth SQL 1 21-02-2011 10:23:22
generar codigo Rofocale Varios 1 28-10-2010 11:25:27
generar codigo de barras jmlifi Impresión 7 18-06-2007 16:04:03
generar codigo de barras pipe Varios 13 21-02-2007 19:54:58
Generar un bakup en SQL Server!!! subzero MS SQL Server 1 11-02-2004 18:56:09


La franja horaria es GMT +2. Ahora son las 11:03:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi