Fórum Array no firebird #471305

26/02/2014

0

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

Responder

Posts

02/03/2014

Eduardo Silva.

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
Responder

Gostei + 0

25/05/2015

Marisiana Battistella

Morelo, conseguistes encontrar uma solução?
O exemplo que o Eduardo passou, te ajudou?
Responder

Gostei + 0

25/05/2015

Thiago Santana

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
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar