[firebase-br] RES: Array no firebird

André Conrado acf em andreconrado.net
Qua Jan 25 14:50:03 -03 2012


Concatena os valores dentro da SP, dá no mesmo.


abçs


Em 25 de janeiro de 2012 14:42, André Conrado <acf em andreconrado.net> escreveu:
> 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




Mais detalhes sobre a lista de discussão lista