[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