Fórum Problemas ao criar um STORED PROCEDURE!!!!(URGENTE) #40426
28/11/2003
0
Ao tentar criar um stored procedure o IBConsole acusa este erro:
Unsuccessful metadata update
DEFINE GENERATOR failed
attempt to store duplicate value (visible to active transactions) in unique index ´RDB$INDEX_11´
Statement: create generator ID_Quarto_GEN
Alguem poderia me dar uma ajudaR???
O CÓDIGO Q ESCREVO É ESSE:
set term ^;
create generator ID_Quarto_GEN ^
set generator ID_Quarto_GEN to 1^
create procedure Gera_ID_Distribuidor
returns (Novo_ID_Quarto integer)
as
begin
Novo_ID_Quarto = GEN_ID(ID_Quarto_GEN);
end^
set term ; ^
Unsuccessful metadata update
DEFINE GENERATOR failed
attempt to store duplicate value (visible to active transactions) in unique index ´RDB$INDEX_11´
Statement: create generator ID_Quarto_GEN
Alguem poderia me dar uma ajudaR???
O CÓDIGO Q ESCREVO É ESSE:
set term ^;
create generator ID_Quarto_GEN ^
set generator ID_Quarto_GEN to 1^
create procedure Gera_ID_Distribuidor
returns (Novo_ID_Quarto integer)
as
begin
Novo_ID_Quarto = GEN_ID(ID_Quarto_GEN);
end^
set term ; ^
Douglasf
Curtir tópico
+ 0
Responder
Posts
28/11/2003
Marcos Fernando
CREATE GENERATOR NOME;
SET GENERATOR NOME TO 0;
***************
CREATE PROCEDURE NOME_DA_SP
RETURNS (
ATUAL INTEGER)
AS
begin
ATUAL = GEN_ID(NOME_DO_GENERATOR,1);
SUSPEND;
end
CRIE PRIMEIRO O GENERATOR DE UM COMMIT E DEPOIS FAÇA A SP,
NA SUA APLICAÇÃO COLOQUE NO SQLDELETE DE SEU IBSTOREpROCD ASSIM:
SE O INDICE FOR IGUAL A 0 VC PRECISA DE UM INDICE NOVO
IF SEUIBDATASORSENDICE.Value = 0 THEN BEGIN
IBSTOREpROCD.Active := FALSE;
IBSTOREpROCD.ExecP;
IBDSDATASORSEINDICE.Value :=IBSTOREpROCD.Params[0].Value;
IBSTOREpROCD.Active := FALSE;
END;
SET GENERATOR NOME TO 0;
***************
CREATE PROCEDURE NOME_DA_SP
RETURNS (
ATUAL INTEGER)
AS
begin
ATUAL = GEN_ID(NOME_DO_GENERATOR,1);
SUSPEND;
end
CRIE PRIMEIRO O GENERATOR DE UM COMMIT E DEPOIS FAÇA A SP,
NA SUA APLICAÇÃO COLOQUE NO SQLDELETE DE SEU IBSTOREpROCD ASSIM:
SE O INDICE FOR IGUAL A 0 VC PRECISA DE UM INDICE NOVO
IF SEUIBDATASORSENDICE.Value = 0 THEN BEGIN
IBSTOREpROCD.Active := FALSE;
IBSTOREpROCD.ExecP;
IBDSDATASORSEINDICE.Value :=IBSTOREpROCD.Params[0].Value;
IBSTOREpROCD.Active := FALSE;
END;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)