[firebase-br] Tratamento de excessão

Pedro Braga bragaped em gmail.com
Ter Jul 26 16:46:53 -03 2016


Emerson, sua resposta está descrita no link

*If the table has no PK, the **MATCHING**clause becomes mandatory. *

Tradução: Se a tabela não tem PK, A cláusula de equivalência torna-se 
obrigatória.

A validação é feita diretamente pela PK caso não exista a PK deve 
indicar as colunas para controle de igualdade.

Em 26/07/2016 16:36, Emerson Sanches escreveu:
> Pedro, só uma duvida, a clausula matching seria o correspondente ao where
> em um update normal?
>
> Guido, obrigado pela resposta.
>
>
>
>
> Sent with MailTrack
> <https://mailtrack.io/install?source=signature&lang=en&referral=emerson.sanches@gmail.com&idSignature=22>
>
> Emerson Sanches
> Analista de Sistemas
>
> Em 26 de julho de 2016 15:59, Cyber Guido <cyberguido em gmail.com> escreveu:
>
>> O que você procura é descrito aqui, perdoe-me por não dispor, neste
>> momento, de um exemplo mais detalhado.
>>
>>
>> https://ib-aid.com/download/docs/firebird-language-reference-2.5/fblangref25-psql-handleexceptions.html#fblangref25-psql-whendo-scope
>>
>> WHEN {<error> [, <error> …] | ANY}
>> DO <compound_statement>
>>
>> <error> ::= {
>>      EXCEPTION exception_name
>>    | SQLCODE number
>>    | GDSCODE errcode
>> }
>>
>> Cordialmente,
>> Carlos
>>
>>
>> On 26/07/2016 15:25, Emerson Sanches wrote:
>>
>>> Boa tarde pessoal da lista. Uso pouco o Firebird, mas gosto muito,
>>> normalmente na empresa onde trabalho uso o Oracle. Vou precisar fazer um
>>> desenvolvimento pros representantes aqui da empresa, e como meu chefe não
>>> quer saber de disponibilizar o Oracle para acesso pela net, vou ter de
>>> fazer uma solução local usando o fb embebed. Bem, a sintaxe que estou com
>>> dificuldade pretendo usar para fazer a atualização das bases e eu uso em
>>> oracle, mas não consegui descobrir como fazer em fb. Em Oracle eu crio um
>>> procedure com a seguinte sintaxe:
>>>
>>> Procedure Insert
>>>     begin
>>>        insert into tabelaX (CampoA, CampoB, CampoC)
>>>        values                  (ValorA, ValorB, ValorC)
>>>     excepion
>>>        when dup_val_on_index then
>>>          update tabelaX
>>>          set      CampoB = ValorB,
>>>                    CampoC = ValorC
>>>          where  CampoA = ValorA;
>>>     end
>>>
>>>
>>> Eu realmente não consegui descobrir no FB como eu trato a exceção pra
>>> quando der erro de chave primaria, eu alterar o cadastro.
>>>
>>> Obrigado pela ajuda.
>>>
>>> []s
>>>
>>>
>>>
>>>
>>> Emerson Sanches
>>> Analista de Sistemas
>>>
>>>
>>>
>>> Sent with MailTrack
>>> <
>>> https://mailtrack.io/install?source=signature&lang=en&referral=emerson.sanches@gmail.com&idSignature=22
>>> ______________________________________________
>>> 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://www.firebase.com.br/pesquisa_lista.html
>>>
>> ______________________________________________
>> 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://www.firebase.com.br/pesquisa_lista.html
>>
> ______________________________________________
> 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://www.firebase.com.br/pesquisa_lista.html

-- 
Pedro E. Braga
Programador
Fone: (18) 99737-0810 Vivo
       (18) 98144-3939 Claro
Skype: pedroernestobraga em msn.com
Site: http://bragatec.blogspot.com.br/




Mais detalhes sobre a lista de discussão lista