[firebase-br] RES: Como fazer um UPDATE com uma condição

Magno System magno em speet.com.br
Dom Out 26 02:04:03 -03 2008


Dependendo da versão do firebird existe também o UPDATE OR INSERT.

----- Original Message ----- 
From: "Tiago de Assis Pimenta" <tiagopimenta em gmail.com>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Saturday, October 25, 2008 10:39 PM
Subject: [firebase-br] RES: Como fazer um UPDATE com uma condição


Ve se poderia ser assim também. Não sei se é bem o que vc quer, mas eu faço
assim nos meus sistemas.

CREATE PROCEDURE CIDADES_INSUPD (
    input_id integer,
    input_descricao varchar(100),
    input_cep varchar(10))
as
begin
  /* Tentano Atualizar */
    update cidades set
                    descricao   = :input_descricao,
                    cep         = :input_cep
    where id = :input_id;

  /* Se não achou nada para atualizar ele inseri */
    if (row_count = 0) then

            insert into cidades (
                            descricao,
                            cep)
                         values(
                            :input_descricao,
                            :input_cep);
end

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Magno System
Enviada em: sábado, 25 de outubro de 2008 23:44
Para: FireBase
Assunto: Re: [firebase-br] Como fazer um UPDATE com uma condição

Tá fraco não hein Anderson!!! Explorando TUUUUUUUUUUUUDO DO FIREBIRD!!!!!11
----- Original Message ----- 
From: "Anderson Miranda Barrozo" <andersonpaduarj em gmail.com>
To: "Zé Luiz" <zeluizdala em terra.com.br>; "FireBase" <lista em firebase.com.br>
Sent: Saturday, October 25, 2008 7:41 PM
Subject: Re: [firebase-br]Como fazer um UPDATE com uma condição


Boa noite,

CREATE PROCEDURE TBCORES_IU (
    corcodigo integer,
    cornome varchar(30))
returns (
    id_cor integer)
as
begin
  if (exists(select corcodigo from tbcores where (corcodigo = :corcodigo)))
then
    update tbcores
    set cornome = :cornome
    where (corcodigo = :corcodigo);
  else
    insert into tbcores (
        corcodigo,
        cornome)
    values (
        NEXT VALUE FOR seq_cor,
        :cornome)
    returning CORCODIGO INTO :id_cor;
    WHEN SQLCODE -803 DO EXCEPTION CHAVE;
end

Anderson Miranda



2008/10/22 Zé Luiz <zeluizdala em terra.com.br>

> Ola colegas
>
> Não domino muito o SQL ainda, assim gostaria de saber se existe uma forma
> de fazer um comando SQL que faça o seguinte:
>
> Se já existe uma determinada informação faça um UPDATE, caso não existe
> faça um INSERT.
>
> Não queira fazer um SELECT para ver se existe e ai determinar se faz um
> UPDATE ou INSERT, mas sim no mesmo comando fazer isso, será que tem como?
>
>
> Um abraço
>
> Zé Luiz
>
>
>
> ______________________________________________
> 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
>



-- 
----------------------------------------------------------------------------
----------------------------------------------------------------------------
------------------------------------
AS Informática
Anderson Miranda Barrozo
(22) 8115-8761
MSN: andersonpaduarj em hotmail.com
______________________________________________
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


______________________________________________
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