Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Autoincremento (https://www.clubdelphi.com/foros/showthread.php?t=21207)

Alex2000 10-05-2005 17:29:25

Autoincremento
 
holap,
he tratado de usar incremente en firebird

he usado el asistente q viene en ems

y nada..

alguna ayuda. o link para entenderlo??

vic_ia 10-05-2005 18:22:42

hola...

lo primero que te podria sugerir es que leyeras la guia de estilo, asi comprenderas que mejor planteadas sean tus dudas mayor probabilidad de que alguien se tome el tiempo para ayudarte....

por otro lado, si a lo que te refieres es usar campos Autoincremento :

1. Creas el campo Autoincremento con el nombre que gustes en la tabla en la que lo necesites, como por ejemplo "msgID"

2. Creas un GENERATOR (generador)
(nota al margen - si mal no entiendo es como una especie de variable que almacenara el ultimo valor del generador) claro tu solo tienes que definir el nombre y en que valor necesitas que empiece; por ejemplo: gen_mensajes_id

3. te creas un trigger, que sea lanzado cuando tu indiques (before insert, after insert, before update, etc.) como muchos usamos los campos autoincrementos como claves principales, yo por ejemplo creo un trigger para before insert y el en indicas la accion que se debe seguir con el generador ... algo asi como :

Código:

CREATE TRIGGER MENSAJES_BI0 FOR MENSAJES
ACTIVE BEFORE INSERT POSITION 0
AS
begin
  if (new.msgID is null) then
    new.msgID = gen_id(gen_mensajes_id, 1);
end

en este ejemplo cada vez que se trata de hacer un insert en la tabla de mensajes se dispara el trigger antes de la insercion y checa el valor del msgID si es nulo, la "funcion" de firebird, "gen_id", lo que hace es incrementar tu GENERATOR gen_mensajes_id en la cantidad que le indicas, en este caso 1 y lo asigna correctamente al nuevo registro...

espero te sirva de guia...

saludos

PD. tambien me habia bajado el EMS pero me resulto mas sencillo de utilizar el IB Expert Personal Edition


La franja horaria es GMT +2. Ahora son las 06:07:22.

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