[firebase-br] Insert or update

Evandro Siqueira vansiqq em gmail.com
Sex Jun 20 13:13:22 -03 2008


Eu acho que só funciona em SPs ou triggers, mas por outro lado, não
testei ainda um update or insert direto dentro de um componente
TQuery, portanto não posso afirmar  com convicção que não funciona.

Evandro.

Em 20/06/08, Janderson Almeida<jandersonloko em gmail.com> escreveu:
> pode ser usando em qualquer lugar ou tem que ser em SP?
>
> Gostei muto disso, tava usando a versão 2.04 em um sistema em adamento, vou
> migrar para a 2.1, poi sestava fazedo aquili, verifica e se não tiver
> insere.
>
> Grato.
>
> 2008/6/20 Evandro Siqueira <vansiqq em gmail.com>:
>
>> Pelo que eu percebi, ele verifica a PK. Se não existe, ele faz um Insert,
>> caso contrario ele faz um Update.
>>
>> Evandro.
>>
>> 2008/6/20 Felipe Aron <felipearon em gmail.com>:
>>
>> > E como ele sabe quando será dado o UPDATE ?? Ele verifica a PK ou todos
>> os
>> > campos pra ver se existe ?
>> >
>> > On Fri, Jun 20, 2008 at 7:33 AM, Evandro Siqueira <vansiqq em gmail.com>
>> > wrote:
>> >
>> > > Olá Janderson,
>> > >
>> > > Segue a sintaxe e exemplos retirados da "releases notes" do FB 2.1:
>> > >
>> > > UPDATE OR INSERT Statement
>> > > Adriano dos Santos Fernandes
>> > > (v.2.1)
>> > > This syntax has been introduced to enable a record to be either
>> > > updated
>> > or
>> > > inserted, according to whether or not it already exists (checked with
>> IS
>> > > NOT
>> > > DISTINCT). The statement is available in both DSQL and PSQL.
>> > >
>> > > Syntax Pattern
>> > >
>> > > UPDATE OR INSERT INTO <table or view> [(<column_list>)]
>> > > VALUES (<value_list>)
>> > > [MATCHING <column_list>]
>> > > [RETURNING <column_list> [INTO <variable_list>]]
>> > >
>> > > Examples
>> > >
>> > > 1.UPDATE OR INSERT INTO T1 (F1, F2)
>> > > VALUES (:F1, :F2);
>> > >
>> > > 2.UPDATE OR INSERT INTO EMPLOYEE (ID, NAME)
>> > > VALUES (:ID, :NAME)
>> > > RETURNING ID;
>> > >
>> > > 3.UPDATE OR INSERT INTO T1 (F1, F2)
>> > > VALUES (:F1, :F2)
>> > > MATCHING (F1);
>> > >
>> > > 4.UPDATE OR INSERT INTO EMPLOYEE (ID, NAME)
>> > > VALUES (:ID, :NAME)
>> > > RETURNING OLD.NAME;
>> > >
>> > > Eu falei que estou abusando por que tinha muitas SP que fazia algo do
>> > tipo:
>> > > procure, se achar UPDATE se não achar INSERT e este comando pra mim
>> > > foi
>> > uma
>> > > mão na roda.
>> > >
>> > > Espero ter ajudado,
>> > > Evandro
>> > >
>> > > 2008/6/19 Janderson Almeida <jandersonloko em gmail.com>:
>> > >
>> > > > Sabia que  tinha uma versão que usava isso, qual a sintax e como
>> > > > isso
>> > > > funciona????
>> > > >
>> > > > naum achei muita coisa sobre o assunto na web.
>> > > >
>> > > > Grato.
>> > > >
>> > > > Janderson Almeida.
>> > > >
>> > > > 2008/6/19 Evandro Siqueira <vansiqq em gmail.com>:
>> > > >
>> > > > > Com certeza a 2.1
>> > > > >
>> > > > > E Funciona muito bem por que estou abusando da dita cuja... hehehe
>> > > > >
>> > > > > 2008/6/18 Janderson Almeida <jandersonloko em gmail.com>:
>> > > > >
>> > > > > > Qual versão do firebird suporta essa sintax e como se usa?
>> > > > > >
>> > > > > > Grato.
>> > > > > >
>> > > > > > Janderon Almeida.
>> > > > > > ______________________________________________
>> > > > > > 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
>> > > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > > --
>> > > > > Evandro Siqueira
>> > > > > Programador
>> > > > > Aracaju/SE
>> > > > > ______________________________________________
>> > > > > 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
>> > > >
>> > >
>> > >
>> > >
>> > > --
>> > > Evandro Siqueira
>> > > Programador
>> > > Aracaju/SE
>> > > ______________________________________________
>> > > 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
>> > >
>> >
>> >
>> >
>> > --
>> > Com a força aprenda a suavidade. Através da suavidade a força
>> prevalecerá!
>> >
>> > http://felipearonnet.spaces.live.com/
>> > http://br.groups.yahoo.com/group/xna-br/
>> > ______________________________________________
>> > 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
>> >
>>
>>
>>
>> --
>> Evandro Siqueira
>> Programador
>> Aracaju/SE
>> ______________________________________________
>> 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
>


-- 
Evandro Siqueira
Programador
Aracaju/SE




Mais detalhes sobre a lista de discussão lista