[firebase-br] RES: RES: Array no firebird

Rafael Voltani rafael.volts em turbocode.com.br
Qua Jan 25 15:14:30 -03 2012


Perfeito André... 

Exatamente o que estava procurando...

Não conhecia esse método de CONTAINING...

Muito obrigado a todos pela atenção!!

[]s

Rafael Voltani
Firebird 2.5
Delphi 2010


-----Mensagem original-----
De: lista-bounces em firebase.com.br
[mailto:lista-bounces em firebase.com.br] Em nome de André Conrado
Enviada em: quarta-feira, 25 de janeiro de 2012 14:43
Para: FireBase
Assunto: Re: [firebase-br] RES: Array no firebird

Gente não é tão difícil assim o que nosso amigo precisa, faz assim que
dá certinho:


1 - Concatena os valores numa String: Ex.: :codigos =  quotedstr('2F')
+ ',' + quotedstr('5D') + ',' + quotedstr('6R') + ',' +
quotedstr('8S');
     e passa isso como parâmetro da sua query.

2 - Dentro da query você compara o campo da seguinte forma:
     WHERE :PARAMETRO_RECEBIDO CONTAINING CODIGO


É simples, nada de array.


abçs.

2012/1/25 Felix - SOL Informática <felix em soltecnologia.com.br>:
> Não entendi a dificuldade, pois estou visualizando o seguinte:
>
> Cliente marca em um grid (?) os códigos:
> [X] 2F
> [X] 5D
> [X] 6R
>
> xcondicao := '';
> while not TabeladoGrid.Eof do
>        if campo_ta_marcado then
>                xcondicao := xcondicao +
> quotedstr(tabeladogrid.fieldbyname('codigo').asstring) + ', ';
>        tabeladogrid.next;
> end;
> if xcondicao <> '' then
>        Xcondicao := ' where codigo in (' +
> Copy(xcondicao,1,length(xcondicao)-2) +')';
>
> Query.sql.close;
> Query.sql.clear;
> Query.sql.add('select * from tabela'+xcondicao); Query.Open;
>
> Ou algo parecido. Não funcionaria ?
>
> Fco. Felix
> www.soltecnologia.com.br
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br 
> [mailto:lista-bounces em firebase.com.br] Em nome de Hélio Oliveira 
> Enviada em: quarta-feira, 25 de janeiro de 2012 12:09
> Para: lista em firebase.com.br
> Assunto: Re: [firebase-br] Array no firebird
>
> Boa tarde Rafael!
>
> A forma de você conseguir isto é através de uma SP onde você passa
os 
> paramentros para mesma.
>
> Internamente na sua SP você monta a estrutura de sua consulta e faz
um 
> execute statement.
>
>> Bom dia amigos
>>
>>
>>
>> Espero conseguir explicar minha duvida que é a seguinte:
>>
>> Quero trazer na consulta todos os cadastro que possuam determinados

>> códigos,
>>
>>           Ex: 2F,5D,6R e 8S somente
>>
>>
>>
>> Até aí beleza,
>>
>>           WHERE CODIGO IN ('2F','5D','6R','8S')
>>
>>
>>
>> Mas a dificuldade está que preciso que receba os valores que o 
>> usuário scolher, É uma consulta personalizável, a qual o usuário 
>> escolhe na tela quais códigos ele quer.
>>
>>
>>
>> Tentei com parâmetro
>>
>>           WHERE CODIGO IN (:CODIGOS)
>>
>>
>>
>> Mas nada feito, firebird aceita apenas um valor por vez.
>>
>> Procurei por array no firebird, mas o que encontrei até agora não 
>> consegui entender direito.
>>
>>
>>
>> Gostaria de saber se alguém já montou algo parecido, ou se tem
alguma 
>> ideia de como solucionar esse caso.
>>
>>
>>
>> Agradeço desde já a atenção.
>>
>>
>>
>> []s
>>
>>
>>
>> Rafael Voltani
>>
>> Firebird 2.5
>>
>> Delphi 2010
>>
>>
>>
>>
>>
>> ______________________________________________
>> 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
>>
>
>
> --
> []'s,
>
> Hélio Oliveira
> Bel. Ciência da Computação
> Técnico em Contabilidade
> e-mail : hpensador em gmail.com
> Skype : hpensador
> http://hpensador.blogspot.com/
> www.hpensador.net
> (71) 9975-9176
>
>
> ______________________________________________
> 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