Consulta SQL - Mais de um dado
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.
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
Curtidas 0
Respostas
Tnaires
28/06/2005
Olá
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
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
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
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
28/06/2005
Obrigado pela resposta.
Como passo o array como parâmetro?
Como passo o array como parâmetro?
GOSTEI 0
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
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
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?
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