Fórum Consulta SQL - Mais de um dado #286348

28/06/2005

0

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

Responder

Posts

28/06/2005

Tnaires

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


Responder

Gostei + 0

28/06/2005

Marlon Spiess

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


Responder

Gostei + 0

29/06/2005

Valdirdill

Obrigado pela resposta.

Como passo o array como parâmetro?


Responder

Gostei + 0

29/06/2005

Marlon Spiess

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


Responder

Gostei + 0

29/06/2005

Valdirdill

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?


Responder

Gostei + 0

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

Aceitar