dúvidas iniciais no uso do firebird...
como trabalhar com campo autoincremento no firebird.
campo sequencial!!! como?
campo sequencial!!! como?
Thiagopedro
Curtidas 0
Respostas
Gandalf.nho
29/03/2005
Crie o campo que deverá ser incrementado automaticamente (normalmente Integer)
Você deve criar um generator com o comando:
Uma das maneiras mais comuns de associar o generator ao campo Integer que deverá ser incrementado é via trigger, assim:
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
GOSTEI 0
Henrique Rodrigues
29/03/2005
tenho esta mesma dúvida, mas onde coloco estes comandos?
GOSTEI 0
Henrique Rodrigues
29/03/2005
já consegui, valeu
GOSTEI 0
Thiagopedro
29/03/2005
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.
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.
GOSTEI 0
Gandalf.nho
29/03/2005
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 ;^
GOSTEI 0
Thiagopedro
29/03/2005
valeu funcionou!!!
GOSTEI 0
Afarias
29/03/2005
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+
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+
GOSTEI 0