[firebase-br] Exceções dentro de um cursor

Pedro Braga bragaped em gmail.com
Qui Jul 3 16:46:52 -03 2014


Você pode realizar da seguinte forma
(coalesce(select v3 from teste where v1=1)+6).
dessa forma deve resolver o problema caso não encontre o registro na tabela.

Em 03/07/2014 16:38, Renan Rogowski Pozzo escreveu:
> Estou precisando fazer esse mesmo processo.
> Porém no coalesce do exemplo que você passou *(*select coalesce(v3,0)
> *from teste where v1=1)+6) *não está retornando 0 quando não encontra o
> registro, retorna null e acaba inserindo o registro com valor null e não
> com a nova quantidade que passei.
>
> Alguma sugestão?
>
> Abraço,
> Renan Rogowski Pozzo
>
> *"Entrega o teu caminho ao Senhor; confia nele, e ele o fará." Salmos 37:5*
>
>
> Em 3 de julho de 2014 14:40, Gladiston Santana <gladiston em vidy.com.br>
> escreveu:
>
>> então, se você está trabalhando com cursor em loop e o valor está no
>> registro que tá lendo então é só pegar o valor no fetch, se tá em outra
>> tabela então é  com o select :
>> update or insert into teste(v1,v2,v3) values (1,3,(select coalesce(v3,0)
>> from teste where v1=1)+6);
>> No exemplo acima, eu somo 6 ao valor que já existe e assumo 0 se não
>> existir.
>>
>> Não vejo como voce resolveria este problema com exception que era o que
>> pretendia fazer.
>> Mas se ainda precisar tratar numa exception, veja o exemplo aqui:
>>
>> http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/langrefupd25-sqlstate.html
>>
>>
>> Em 3 de julho de 2014 14:21, Emerson Sanches <emerson.sanches em gmail.com>
>> escreveu:
>>
>>> Boa tarde Gladison. Entendi o codigo, mas tenho uma duvida no caso que vc
>>> me passou o insert  vai pegar o valor que passei e substituir na tabela.
>> O
>>> que estou precisando que ele pegue o valor existente na tabela e some
>> com o
>>> novo valor que vou passar, tem como fazer isso?
>>>
>>> Obrigado
>>>
>>> Emerson Sanches
>>> Analista de Sistemas
>>>
>>>
>>> Em 3 de julho de 2014 13:42, Gladiston Santana <gladiston em vidy.com.br>
>>> escreveu:
>>>
>>>> não precisa de exception, basta:
>>>> update or insert into tabela(id_campo1, campo2, campo3) values
>>>> (id_valor1,valor2,valor3) matching (id_campo1);
>>>>
>>>>
>>>> Em 3 de julho de 2014 13:28, Emerson Sanches <
>> emerson.sanches em gmail.com>
>>>> escreveu:
>>>>
>>>>> Boa tarde pessoal da lista. Tenho um cursor onde faço uma pesquisa e
>>>> depois
>>>>> inseriro os dados desta pesquisa em um tabela pré-cadastrada. Na
>>> inclusão
>>>>> desses dados gostaria de fazer um tratamento que consistem em:
>>>>>
>>>>> Se o registro a ser incluso fizer uma violação de chave primaria
>> então
>>> eu
>>>>> devo fazer um update desse registro. Em oracle eu faço assim:
>>>>>
>>>>> begin
>>>>>    rotina de exclusão
>>>>> exception
>>>>>    when dup_val_on_index then
>>>>>      rotina de alteração
>>>>> end
>>>>>
>>>>> Não consegui achar uma maneira ou ano sei qual a exceção devo usar no
>>>> bloco
>>>>> exeption para fazer esse tratamento.
>>>>>
>>>>> Obrigado pela ajuda.
>>>>>
>>>>>
>>>>>
>>>>> Emerson Sanches
>>>>> Analista de Sistemas
>>>>> ______________________________________________
>>>>> 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
>>>>>
>>>>
>>>>
>>>> --
>>>> --
>>>> B em B@BU     iB em M@B.  B em MBBO   MBBMMB em B@BZLr    E@@@@i      r@@@BU
>>>> vB em M@O     E em B@Bu   BBBM em 0   G em MMM@N8MBB em ZP5r  B em B@k      8B@@O
>>>>   OB em B@q   2 em BBBM    B em B@BO   BB em B@B,.:,7B em B@@L uB em B@,    OB em B@.
>>>>   ,@@@B@   @BBB@,    @BBB em 8   M em M@@@     PB em B@B  @@@BN   iB em B@L
>>>>    U em B@B2 LB em B@X     B em MBBO   MBBM em B     i em BBB@. 7 em B@Bi  B em B@E
>>>>     B@@@BiM em M@B.     @BBM em G   M em MMB@     v@@M em B,  G em B@Z v em B@B.
>>>>     7B em B@O em B@B5      B em B@B8   BBBM em B     Z@@@B@   iB@@@2 em B@Br
>>>>      NB em M@B em B8       @B em B@8   M em B@B em i:i75 em B@B em r    E@@B em B@Bq
>>>>      . em B@@@B@:       B em B@B@   @B@@@B em B@B@@@ME;     .BB em MBB@
>>>>       55.ANOS        OMOGBS   PBZGGOOMOO117,        7 em BBB@r
>>>>       ==============================================r@@@@F=====
>>>>       Gladiston Santana                             8 em B@B,
>>>>       Supervisor de TI                             G em B@B7
>>>>       Tel.:+551147873122 R:228                    :@B em B0
>>>>       Grupo VIDY - SGQ ISO9001 - 55 ANOS          @B em B@.
>>>>       Visite nosso site: www·vidy·com·br         BB@@@u
>>>>       Visite também : www·expolabor·com·br      GB em B@N
>>>> ______________________________________________
>>>> 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
>>>
>>
>>
>> --
>> --
>> B em B@BU     iB em M@B.  B em MBBO   MBBMMB em B@BZLr    E@@@@i      r@@@BU
>> vB em M@O     E em B@Bu   BBBM em 0   G em MMM@N8MBB em ZP5r  B em B@k      8B@@O
>>   OB em B@q   2 em BBBM    B em B@BO   BB em B@B,.:,7B em B@@L uB em B@,    OB em B@.
>>   ,@@@B@   @BBB@,    @BBB em 8   M em M@@@     PB em B@B  @@@BN   iB em B@L
>>    U em B@B2 LB em B@X     B em MBBO   MBBM em B     i em BBB@. 7 em B@Bi  B em B@E
>>     B@@@BiM em M@B.     @BBM em G   M em MMB@     v@@M em B,  G em B@Z v em B@B.
>>     7B em B@O em B@B5      B em B@B8   BBBM em B     Z@@@B@   iB@@@2 em B@Br
>>      NB em M@B em B8       @B em B@8   M em B@B em i:i75 em B@B em r    E@@B em B@Bq
>>      . em B@@@B@:       B em B@B@   @B@@@B em B@B@@@ME;     .BB em MBB@
>>       55.ANOS        OMOGBS   PBZGGOOMOO117,        7 em BBB@r
>>       ==============================================r@@@@F=====
>>       Gladiston Santana                             8 em B@B,
>>       Supervisor de TI                             G em B@B7
>>       Tel.:+551147873122 R:228                    :@B em B0
>>       Grupo VIDY - SGQ ISO9001 - 55 ANOS          @B em B@.
>>       Visite nosso site: www·vidy·com·br         BB@@@u
>>       Visite também : www·expolabor·com·br      GB em B@N
>> ______________________________________________
>> 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

-- 
Pedro E. Braga
Programador
(18) 99737-0810 Vivo
(18) 98144-3939 Claro
http://bragatec.blogspot.com.br/





Mais detalhes sobre a lista de discussão lista