Fórum Procedure Incremento ? #45053

22/06/2004

0

Olá Pessoal bom dia !

no meu sistema eu tenho uma tabela que guarda todos os IDs das tabelas, daí quando eu cadastro alguma coisa eu incremento um no campo dessa tabela e pego o código incrementado, dessa forma eu tenho o controle de todos os IDs das tabelas.

estou tentando automatizar mais isso usando uma procedure
para fazer um Update e retornar o código incrementado na tabela.

exemplo:

CREATE PROCEDURE INCREMENTO (
CAMPO VARCHAR (15),
ID_PAR001 INTEGER)
RETURNS (
NEWVALOR INTEGER)
AS BEGIN
UPDATE INC_TABELA
SET ID = ID +1
NEWVALOR = INC_TABELA.ID

WHERE
(CAMPO = :CAMPO ) AND
(EMPRESA = :EMPRESA );
END

eu passo o campo a ser incrementado e a empresa selecionada, daí a idéia é incrementar um ao campo ID e retornar isso em NEWVALOR, mais tá dando erro.

antes eu estava usando sem retorno na procedure, eu dava o update e em sequida dava o select no campo, mais se isso funcionar ficaria muito melhor,

alguém poderia me dar uma ajudinha ??

muito obrigada !


Renata Coimbra.


Renata Coimbra

Renata Coimbra

Responder

Posts

22/06/2004

Maicongabriel

Renata,
Você sabe a utilidade dos [i:096d6b6d3d]GENERATORS[/i:096d6b6d3d] ?


Responder

Gostei + 0

22/06/2004

Renata Coimbra

[color=green:9f2970e1f7]Renata,
Você sabe a utilidade dos GENERATORS ?[/color:9f2970e1f7]

GENERATORS ? o que é isso ? rs..

não sei se vc observou a procedure que estou tantando fazer gera um incrementa por empresa, se eu for usar GENERATORS por empresa vai ficar um tanto confuso a implementação.

mais alguém pode me ajudar na procedure ?

Obrigada.

Renata Coimbra.


Responder

Gostei + 0

22/06/2004

Vinicius2k

Renata,

Eu posso estar enganado, visto que não uso muito SPs, mas não vejo na lista de parametros da procedure o parametro EMPRESA que vc faz a chamada no where...
CREATE PROCEDURE INCREMENTO ( CAMPO VARCHAR (15), [color=red:5c75cf824f]ID_PAR001[/color:5c75cf824f] INTEGER) RETURNS ( NEWVALOR INTEGER) AS BEGIN UPDATE INC_TABELA SET ID = ID +1 NEWVALOR = INC_TABELA.ID WHERE (CAMPO = :CAMPO ) AND (EMPRESA = [color=red:5c75cf824f]:EMPRESA [/color:5c75cf824f]); END


Não seria isso?
T+


Responder

Gostei + 0

22/06/2004

Renata Coimbra

CREATE PROCEDURE INCREMENTO (
CAMPO VARCHAR (15),
[color=red:f1171c72be]ID_PAR001[/color:f1171c72be] INTEGER)
RETURNS (
NEWVALOR INTEGER)
AS BEGIN
UPDATE INC_TABELA
SET ID = ID +1
NEWVALOR = INC_TABELA.ID

WHERE
(CAMPO = :CAMPO ) AND
(ID_PAR001 = :[color=red:f1171c72be]ID_PAR001[/color:f1171c72be] );
END


Esse ID_PAR001 é o código da empresa, mudei o nome para EMPRESA para ficar melhor o entendimento.

Obrigada pela atenção

Renata Coimbra.


Responder

Gostei + 0

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

Aceitar