Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-07-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Campos de autoincremento

¿Cómo se implementa un campo Autoincremento en Interbase y SQL Server?

Para los que vienen de Paradox u otros sistemas similares al mundo C/S la primera pega que se encuentran es como genero un campo Autoincremento.

SQL Server de Microsoft:

Tenemos unos campos especiales, llamados Entity, que suplen esta función.

Interbase:

Es algo más trabajoso (va muy bien usar una herramienta aftercase):

1) Creamos un generador: SET GENERATOR GenIdCliente TO 1 (aquí el numero lo escogemos, claro está, en el ejemplo inicio a 1.)

2) Campo = GEN_ID(GenIdCliente, 1) Aquí el 1 es el step de incremento, podemos hacerlo de 2 en 2 o lo que queramos. "Campo" es el campo de la base de datos a incrementar. Este código puede ponerse en una Stored Procedure o bien en un Trigger. (Desde Delphi, ojo con los refrescos, sino el campo parece que no se insertó).

Importante: Los generadores son atransaccionales, eso significa que si usamos un generador para generar números correlativos desde una transacción pueden no ser consecutivos, dependiendo de si acabamos bien o no, ya que el rollback no recupera el valor del generador. (Se pueden usar técnicas de doble generador para este menester).
Responder Con Cita
Respuesta


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


La franja horaria es GMT +2. Ahora son las 20:56:30.


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