[firebase-br] RES: RES: where com lista de valores
Zottis
bzottis em ig.com.br
Sáb Jun 5 12:38:31 -03 2010
Então, você pode Fazer de Duas Formas, como falei anteriormente:
A primeira, vc Faz um While not......
No primeiro dataset para varrer o resultado e joga os códigos dos clientes
em uma varialvel,
Exemplo:
Var Codigos; Integer;
Codigos := códigos + QryClienteCodCliente.value + ', ';
Isso retornará 1,2,3 que você pode passar no segundo dataset dentro da
cláusula "IN"
Ou fazer um outro dataset para pegar a lista de valores do primeiro
Monta o SQL na parte do where da mesma forma que o primeiro
Mas na parte do select faz assim:
Select LIST(Clientes.CodCliente, ',') AS CodCliente
Isso te retornará assim:
1,2,3
Daí vc consegue passar para o próximo Dataset na cláusula "IN"
Espero que ajude, qualquer coisa, segunda feira me Fala.
Até mais, e bom Final de Semana.
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Carlos Wilson
Enviada em: sábado, 5 de junho de 2010 12:07
Para: FireBase
Assunto: Re: [firebase-br] RES: where com lista de valores
Obrigado pelo seu comentário mas eu realmente não entendi o que voce
quis dizer, ou acho que voce não entendeu o que quero.
exemplo:
em um dataset depois do usuário ter feitos todas as opções de filtragem
possivel, resultou em:
QryCliente
Codcliente Nome
===============================
1 Carlos
2 Manoel
3 Júlia
Aí eu completo a sql do segundo dataset com um laço que vai pegando os
codigos do 1º dataset:
o que me resulta em ...where codcliente IN (1,2,3);
Funciona que é uma beleza mas para poucos registros se o primeiro
dataset me retornar 3000 clientes dá pau.
Pergunto: O firebird possui outro comando para comparação de valores que
aceite MUITOS valores???
Obrigado.
Carlos Wilson
Zottis escreveu:
> Faz um list com os parametros da primeira tela, ele te retornará o que vc
> quer,
> Ou ainda faz um while not na primeira tela e joga em uma variável, antes
de
> chamar a segunda tela
> E passa o parâmetro da variavel
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
Em
> nome de Carlos Wilson
> Enviada em: sábado, 5 de junho de 2010 09:25
> Para: FireBase
> Assunto: Re: [firebase-br] where com lista de valores
>
> É tipo assim quero fazer um relatório de venda dos clientes que foram
> selecionados numa outra tela.
> QryRelatorio.Close;
> QryRelatorio.Sql.Clear;
> QryRelatorio.Sql.Add(SQL);
> QryRelatorio.SQL.ADD( 'where codcliente in (' );
> Qryclientes.first;
> while not QryClientes.EOF do
> begin
> QryRelatorio.SQL.ADD( QryClientesCODCLIENTE.AsString + ',' );
> QryClientes.Next;
> end;
> QryRelatorio.Open;
>
> para poucos clientes funciona muito bem, mas quando é muitos clientes,
> aparece uma mensagem "Dinamic SQL Error" devido a limitação do comando IN
> existe uma alternativa pra isso?
>
> Garto.
>
> Carlos Wilson.
>
> Alysson Azevedo escreveu:
>
>> exite o comando "exists"
>> mas posta aew mais ou menos oque vc precisa...
>> alguem vai saber te ajudar...
>> --
>>
>> Alysson Gonçalves de Azevedo
>> (11) 8491-7730
>>
>> (\(''^_^ )/)
>>
>> "Pobre vive dizendo que não tem nada, mas quando vem a enchente, ele sai
>> gritando: -Perdi tudo!!!"
>>
>>
>>
>>
>> Em 4 de junho de 2010 22:15, Carlos Wilson <cwfsa1 em gmail.com> escreveu:
>>
>>
>>
>>> Boa noite,
>>>
>>> Estou fazendo um select com base nos valores de outro Dataset. Fiz um
>>>
> while
>
>>> para buscar os valores do dataset e acrescentar uma lista de valores
para
>>> ser usada em conjunto com "where in". porém o comando "in" possui um
>>>
> limite
>
>>> de valores que pode ser passado. existe uma alternativa ao comando in?
>>>
>>> Obrigado,
>>>
>>> Carlos Wilson
>>> Delphi+MDO+Firebird 2.1
>>>
>>> ______________________________________________
>>> 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
> Nenhum vírus encontrado nessa mensagem recebida.
> Verificado por AVG - www.avgbrasil.com.br
> Versão: 9.0.829 / Banco de dados de vírus: 271.1.1/2919 - Data de
> Lançamento: 06/05/10 03:25:00
>
>
> ______________________________________________
> 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
Nenhum vírus encontrado nessa mensagem recebida.
Verificado por AVG - www.avgbrasil.com.br
Versão: 9.0.829 / Banco de dados de vírus: 271.1.1/2919 - Data de
Lançamento: 06/05/10 03:25:00
Mais detalhes sobre a lista de discussão lista