Array no firebird

Firebird

26/02/2014

Bom dia amigos

Espero conseguir explicar minha duvida que é a seguinte:
Quero trazer na consulta todos os cadastro que possuam determinados códigos:

Ex: 2, 4, 15, 56 e 57 somente. (integer)

Até aí beleza,

WHERE CODIGO IN (2, 4, 15, 56, 57)

Mas a dificuldade está que preciso que receba os valores que o usuário escolher. É 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
Silvio Morelo

Silvio Morelo

Curtidas 0

Respostas

Eduardo Silva.

Eduardo Silva.

26/02/2014

Uma alternativa seria usar o Format:

Format('SELECT * FROM SUA_TABELA WHERE CODIGO IN (%s, %s, %s, %s, %s)',
[Edit1.Text, Edit2.Text, Edit3.Text, Edit4.Text, Edit5.Text]);

Lembrando que %s é String, %d é inteiro

abs

Eduardo Belo
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

26/02/2014

Morelo, conseguistes encontrar uma solução?
O exemplo que o Eduardo passou, te ajudou?
GOSTEI 0
Thiago Santana

Thiago Santana

26/02/2014

Acho que seria mais interessante criar um função recebendo como parametro uma string com caracteres especiais para separar a sua lista de código!
Por exemplo : 1#9#3#8
E dentro da função você poderia separar esses código e motar a sua clausula IN
GOSTEI 0
POSTAR