Consulta SQL - Mais de um dado

Delphi

28/06/2005

Para listar o produto que tem código 10, faço a seguinte consulta:

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(´SELECT * FROM PRODUTOS WHERE CODIGO =:VCodigo´);
Query1.Params[0].asInteger = 10;
Query1.Open;

Como ficaria uma consulta em que o usuário informa o código para procura? O usuário poderia digitar um, dois, ou mais códigos e quero listar todos.

Obrigado.


Valdirdill

Valdirdill

Curtidas 0

Respostas

Tnaires

Tnaires

28/06/2005

Olá
SELECT * FROM PRODUTOS WHERE Codigo IN (1, 2, 3, etc...)

Vc vai ter q implementar algo q construa a lista de valores entrados pelo usuário pra passar pra consulta, coisa do tipo: armazenar num array, etc...
Abraços


GOSTEI 0
Marlon Spiess

Marlon Spiess

28/06/2005

Olá, existem 2 modos (pelo q entendi da sua dúvida):

1) vc informar código inicial e final, então na clausula where põe cod >= :ci and cod <= :cf;
2) caso vc tenha um array com os códigos, então a clausula where ficaria assim: where cod in :myarray;

Boa sorte


GOSTEI 0
Valdirdill

Valdirdill

28/06/2005

Obrigado pela resposta.

Como passo o array como parâmetro?


GOSTEI 0
Marlon Spiess

Marlon Spiess

28/06/2005

array como parametro: use uma string pata receber cada linha do seu array, sepando as linha com virgula dentro da string.

Ex:

a -> array
s -> string

a = 1
2
5
10

s = ´1,2,5,10´

então na clausula where da sua query

where cod in (:s)

espero ter ajudado


GOSTEI 0
Valdirdill

Valdirdill

28/06/2005

Certo.
Mas nesse caso não precisaria do array. Poderia atribuir os valores diretamente para o params.

Query1.params[0].Value := Edit1.text + ´,´ + Edit2.text +´,´+...

Certo?


GOSTEI 0
POSTAR