[firebase-br] Erro em Stored Procedure
Ivan Guimarães Meirelles
igmeirelles em gmail.com
Seg Abr 5 11:53:58 -03 2010
Olá Alysson...
vc pode usar uma trigger na tabela picoditemproc
CREATE TRIGGER PICODITEMPROC_ID FOR PICODITEMPROC
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.CODITEMPROC IS NULL) THEN
select coalesce(max(coditemproc),0) + 1
from picoditemproc where codprocesso = new.codprocesso
into new.coditemproc;
END
Espero ter ajudado...
Um abraço...
Em 05/04/2010 09:29, Alysson Azevedo escreveu:
> Ola camaradas...
> eu sei que existe inumeros emails com este tema mas todos os que eu
> procurei, nao me responderam...
> entao, vai a duvida...
>
> eu uso firebird 2.1...
> e tenho duas tabelas (pai/filho) chamadas "processo" e "processoitem"...
> para registro do "processo", eu quero que os "CodItemProc" da tabela
> "processoitem" começem sempre do '1'...
>
> até onde eu pesquisei, num da pra fazer isso atravez de generators...
> Correto?? (se não, como faz?)
>
> e para tentar resolver isso, eu estou fazendo um select do max, somo 1, e
> entao faço o insert... mas tudo isso no client...
> e queria criar uma sp para resolver isso...
>
> CREATE PROCEDURE SP_NEXTCODITEMPROC (
>
>> picodprocesso bigint not null)
>> RETURNS (
>> pocoditemproc bigint)
>> AS
>> declare variable vcodtemp bigint;
>> BEGIN
>> select Max("CodItemProc") from "processoitem" where "CodProcesso" =
>> :picodprocesso into :vcodtemp ;
>> pocoditemproc = vcodtemp + 1;
>> END
>>
>>
> mas alguma coisa está errada e entao retorna isso no ibexpert:
>
>
>> This operation is not defined for system tables.
>> unsuccessful metadata update.
>> STORE RDB$PROCEDURE_PARAMETERS failed.
>> lock conflict on no wait transaction.
>>
>>
> e isso no Firebird ISQL Tool:
>
>
>> Statement failed, SQLCODE = -607
>> unsuccessful metadata update
>> -STORE RDB$PROCEDURE_PARAMETERS failed
>> -Feature not supported on ODS version older than 11.1
>>
>>
> alguem sabe me ajudar??
> ----------------------------------------------
>
> Alysson Gonçalves de Azevedo
> (11) 8491-7730
>
> (\(''^_^ )/)
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
Mais detalhes sobre a lista de discussão lista