Fórum Como fazer número sequencial do Interbase #47444
13/10/2004
0
Seria algo parecido como o do Access (Autonumeração), no oracle usamos o NEXTVALL nas Stored Procedure e no firebird não sei como fazer.
Se alguém puder me ajudar........ : :o
Tony_gomes
Curtir tópico
+ 0Posts
13/10/2004
Guibas
faça uma pesquisa no fórum que tem muitos artigos a esse respeito.
Gostei + 0
13/10/2004
Tony_gomes
É a 1º vez que mexo com o Firebird, estou dando manutenção em sistema cuja a proc abaixo eu mesmo que criei de acordo com as que já estavam no banco, notei que no firebird, quando seleciono algum generator noto que há um ´dependencie´ do generator com a proc.
Quando visualizo o fonte da proc, não vejo nada dizendo que esta proc está relacionada com este generator, mas quando seleciono ´ Show Depend On Object da proc , vejo que a porcaria da proc está relacionada com o generator.
Agora vai a duvida, dentro desta proc eu devo colocar o código assim:
CREATE GENERATO NOME_DO_GENERATOR ??
CREATE PROCEDURE ´INSERECODTICKET´
RETURNS
(
´ATUAL´ INTEGER
)
AS
BEGIN EXIT; END ^
Gostei + 0
13/10/2004
Gandalf.nho
IF NEW.NOME_CAMPO IS NULL THEN
NEW.NOME_CAMPO = GEN_ID(NOME_GENERATOR, 1);
Gostei + 0
13/10/2004
Tony_gomes
Como disse acima, não estou familiarizado com o Interbase, fiz que vc escrveu porém não rolou, esta é minha trigger, porém o Firebird reclama dizendo q está errada.
CREATE TRIGGER ´INSERE_CD_TICKET´ FOR ´TICKET´
BEFORE INSERT POSITION 0 AS
BEGIN
IF NEW.TICKET_CD_CODIGO IS NULL THEN
NEW.TICKET_CD_CODIGO = GEN_ID(´TICKET_CD_CODIGO´,1);
END
onde: TICKET é o nome da minha tabela e TICKET_CD_CODIGO é o generator que acabei de criar.
Gostei + 0
13/10/2004
Gandalf.nho
CREATE TRIGGER ´INSERE_CD_TICKET´ FOR ´TICKET´
BEFORE INSERT POSITION 0 AS
BEGIN
IF NEW.TICKET_CD_CODIGO IS NULL THEN
NEW.TICKET_CD_CODIGO = GEN_ID(TICKET_CD_CODIGO,1);
END
Gostei + 0
14/10/2004
Tony_gomes
Foi de muita ajuda.....estas dicas....pra quem nunca tinha feito um select no Interbase me sai bem..........
Valeu mesmo;;;;;;;;;; :D
Vc´s estão de parabéns.
Gostei + 0