[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