Fórum dúvidas iniciais no uso do firebird... #50130

29/03/2005

0

como trabalhar com campo autoincremento no firebird.


campo sequencial!!! como?


Thiagopedro

Thiagopedro

Responder

Posts

29/03/2005

Gandalf.nho

Crie o campo que deverá ser incrementado automaticamente (normalmente Integer)

Você deve criar um generator com o comando:
CREATE GENERATOR nome_generator. 


Uma das maneiras mais comuns de associar o generator ao campo Integer que deverá ser incrementado é via trigger, assim:

CREATE TRIGGER nome_trigger FOR nome_tabela 
BEFORE INSERT 
AS 
BEGIN 
IF (NEW.nome_campo IS NULL) THEN 
NEW.nome_campo = GEN_ID(nome_generator, 1); 
END



Responder

Gostei + 0

29/03/2005

Henrique Rodrigues

tenho esta mesma dúvida, mas onde coloco estes comandos?


Responder

Gostei + 0

30/03/2005

Henrique Rodrigues

já consegui, valeu


Responder

Gostei + 0

30/03/2005

Thiagopedro

colegas, é o seguinte

criei certinho o generator, até aí blz.

quando fui executar o comando a seguir via sql deu o seguinte erro:

CREATE TRIGGER Codigo_Auto FOR Clientes
BEFORE INSERT
AS
BEGIN
IF (NEW.Codigo IS NULL) THEN
NEW.Codigo = GEN_ID(GEN_CLIENTE, 1);
END


erro:

ISC ERROR CODE:335544569

ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
Unexpected end of command

Statement: CREATE TRIGGER Codigo_Auto FOR Clientes
BEFORE INSERT
AS
BEGIN
IF (NEW.Codigo IS NULL) THEN
NEW.Codigo = GEN_ID(GEN_CLIENTE, 1)


----------


observações: esta tabela já contém dados e o campo código esta sequencialmente preenchido.


Responder

Gostei + 0

30/03/2005

Gandalf.nho

Tente assim, deve funcionar:

SET TERM ^;
CREATE TRIGGER Codigo_Auto FOR Clientes 
BEFORE INSERT 
AS 
BEGIN 
    IF (NEW.Codigo IS NULL) THEN 
        NEW.Codigo = GEN_ID(GEN_CLIENTE, 1); 
END ^
SET TERM ;^



Responder

Gostei + 0

30/03/2005

Thiagopedro

valeu funcionou!!!


Responder

Gostei + 0

30/03/2005

Afarias

Se vc é iniciante sugiro q leia este tópico:

http://forum.clubedelphi.net/viewtopic.php?t=30575

tb sugiro q leia outros tópicos sobre auto-incremento neste fórum -- triggers para auto-incremento geralmente são ´problemas´ -- para iniciantes principalmente. :-)


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar