[firebase-br] Erro em Stored Procedure

Alysson Azevedo agalysson em gmail.com
Seg Abr 5 14:00:44 -03 2010


Vlw...
vou avaliar ainda a possibilidade de add essa trigger, mas seu codigo me
ajudou bastante, pois não conhecia o "coalesce", que é algo que eu preciso a
todo instante...
----------------------------------------------

Alysson Gonçalves de Azevedo
(11) 8491-7730

(\(''^_^ )/)


Em 5 de abril de 2010 11:53, Ivan Guimarães Meirelles <igmeirelles em gmail.com
> escreveu:

> 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
>>
>>
>>
>
>
> ______________________________________________
> 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