[firebase-br] acho que é bug

André Conrado acf em andreconrado.net
Qua Nov 21 12:41:02 -03 2012


Samuel, passa a estrutura dessa tabela para podermos avaliar melhor e qual
é a sua lógica de exclusão.

Abs

Em 20 de novembro de 2012 16:20, Alysson Gonçalves de Azevedo <
agalysson em gmail.com> escreveu:

> Repare se você precisa simplesmente retornar o registro 1, 2 e 3, por que o
> usuário pediu, usar o IN está ok.
>
> Agora, se você precisa fazer uma query que retorne registros que atendam à
> algum critério...
> E modificar ou excluir registros relacionados à consulta anterior, então o
> exists ou not exists é o indicado.
>
>
>
> Alysson Gonçalves de Azevedo - (11) 984 917 730
>
> "É curioso como as pessoas ficam confusas quando a frase não terminam do
> jeito que elas periquito."
>
>
>
> Em 20 de novembro de 2012 12:52, Gladiston Santana
> <gladiston em vidy.com.br>escreveu:
>
> > para procurar pedidos que não tenham itens :
> >
> > select * from pedidos a
> > where not exists(select * from pedidos_itens b where b.pedido=a.pedido)
> >
> > Numa SP :
> > if not exists(select * from pedidos_itens where pedido=:p_pedido) then
> > begin
> >    exception ex_generic_error 'Este pedido não possui itens ! Não posso
> > prosseguir.'
> >    suspend;
> >   exit;
> > end;
> >
> > exists é a melhor forma de lidar com subqueries que tratem com a
> existencia
> > de dados (ou não) porque a primeira ocorrência de valor a subquerie não
> > precisa continuar sua execução, por isso não precisa de distinct como
> voce
> > teve de fazer com o not in.
> >
> > inte+
> >
> > Em 20 de novembro de 2012 12:03, Jean Alysson <jeanpapa em gmail.com>
> > escreveu:
> >
> > > Olá Gladiston,
> > >
> > > eu uso muito o IN(), mas vendo seu comentário acho que vou mudar.
> > > uso sessa forma:
> > > monto a parte uma lista de codigos. Ex: codigos:= 1,2,3,4
> > > e monto um select via codigo direto no delphi:
> > >
> > > select * from pedidos where ie_cliente in (codigos)
> > > como eu faria usando o EXISTS() ?
> > >
> > > Obrigado
> > > Jean Alysson
> > >
> > > Em 20 de novembro de 2012 10:21, Gladiston Santana
> > > <gladiston em vidy.com.br> escreveu:
> > > > Independente do erro, acho que você deveria abandonar o NOT IN() e
> > > passar a
> > > > usar EXISTS() e NOT EXISTS(), é mais rápido e menos confuso e sem
> dizer
> > > que
> > > > é diferente do IN() que não tem limite de elementos.
> > > >
> > > > PS: Também acho que sua query tá errada, mas é dificil dizer quando
> não
> > > se
> > > > está ao vivo conectado em sua base para se conhecer as tabelas.
> > > >
> > > >
> > > > Em 19 de novembro de 2012 21:55, Samuel Peres Ferreira <
> > > > samuel.peres.ferreira em gmail.com> escreveu:
> > > >
> > > >> ola lista
> > > >>
> > > >>
> > > >> uso o fb 2.1
> > > >>
> > > >>
> > > >> tenho o seguinte sql:
> > > >>
> > > >> delete from cliente
> > > >>       where cliente not in
> > > >>                   (select distinct cliente (aqui deveria ser
> > > 'matricula')
> > > >>                            from lancamento)
> > > >>
> > > >>
> > > >> por erro meu, o correto é
> > > >>
> > > >> delete from cliente
> > > >>       where cliente not in
> > > >>                   (select distinct matricula
> > > >>                            from lancamento)
> > > >>
> > > >>
> > > >>
> > > >> na primeira opção, o fb executa e não da erro e não exclui nada.
> > > >> deveria dar erro de sintaxe.
> > > >>
> > > >> na segunda opção, executa corretamente.
> > > >>
> > > >> acho q é um bug do fb (seria o primeiro que descubro, depois de
> alguns
> > > >> anos).
> > > >>
> > > >> Samuel
> > > >>
> > > >> ______________________________________________
> > > >> 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
> > >
> > >
> > >
> > > --
> > > Atenciosamente
> > > Jean Alysson Ambrosio
> > >
> > > ______________________________________________
> > > 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
>



-- 
Um Abraço,
André Conrado.

055 21 8840-6232 - Claro
e-mail: acf em andreconrado.net
http://andreconrado.net



Mais detalhes sobre a lista de discussão lista