Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-11-2011
jgutti jgutti is offline
Miembro
 
Registrado: may 2003
Posts: 189
Poder: 22
jgutti Va por buen camino
Autoincremento con firebird

Hola al foro, con un master/detalle utilizo un campo con autoincremento a partir del un trigger en el evento before insert, el autoincremento funciona bien pero el correlativo es unico para la tabla, la consulta es la sgte:
- Es posible generar el autoincremento individual a partir de 1 a ... n para cada detalle del master ejemplo:
- master : Nº Factura = 1 (Detalle autoincremento: 1,2,3,4,5)
- master : Nº Factura = 2 (Detalle autoincremento: 1,2)

saludos
jgutti
Responder Con Cita
  #2  
Antiguo 28-11-2011
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 922
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Thumbs up

Primero el objetivo de los campos autoincremento es generar numeros correlativos únicos para un registro.

Lo otro de numerar los item del detalle lo podrias hacer de la siguiente manera:

Al momento de insertar un registro en el detalle, realizar una consulta para obtener el MAXIMO valor de los items del detalle y sumarle uno, asi podrias tener la secuencia que deseas.

Código SQL [-]

CREATE OR ALTER TRIGGER DETALLE_BI0 FOR DETALLE
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE ID INTEGER;
begin

     /* Trigger text */
     IF ((NEW.ID_ITEM IS NULL) OR (NEW.ID_ITEM=0) ) THEN
     BEGIN
            SELECT MAX(ID_ITEM)
            FROM DETALLE
            WHERE ID_MASTER=:NEW.ID_MASTER
            INTO :ID;

           IF (ID IS NULL) THEN
              ID=1;
          ELSE
              ID=ID+1;

             NEW.ID_ITEM=:ID;
     END
end

Espero te ayude, saludos cordiales
Responder Con Cita
Respuesta



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
Funcion de autoincremento Zakio14 Firebird e Interbase 4 09-06-2008 06:16:41
Error al trata de crear un autoincremento en firebird El_Chava Firebird e Interbase 2 13-03-2008 05:08:12
Problema con autoincremento!! magnu9 Conexión con bases de datos 4 07-11-2006 23:10:34
Campo autoincremento en FB Phacko Firebird e Interbase 1 02-08-2005 19:29:12
Autoincremento Alex2000 Firebird e Interbase 1 10-05-2005 18:22:42


La franja horaria es GMT +2. Ahora son las 14:53:38.


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