Query com vários parâmetros
31/08/2004
0
Pessoal, alguém pode me ajudar???
Preciso fazer uma tela onde tenho vários parâmetros que servirão de condição para os meus selects (entrarão na cláusula where).
Criei uma tela onde ao lado de cada edit tenho um checkbox e quero que se o checkbox estiver marcado, ele vai pegar o valor do edit e jogar dentro do select da query.
O usuário pode marcar somente um campo, assim como todos e todos deverão entrar na condição da consulta.
Como deve ser criada essa query e passado os valores do edit para ela?
Alguém já fez isso???
Como faço?
Obrigada
Preciso fazer uma tela onde tenho vários parâmetros que servirão de condição para os meus selects (entrarão na cláusula where).
Criei uma tela onde ao lado de cada edit tenho um checkbox e quero que se o checkbox estiver marcado, ele vai pegar o valor do edit e jogar dentro do select da query.
O usuário pode marcar somente um campo, assim como todos e todos deverão entrar na condição da consulta.
Como deve ser criada essa query e passado os valores do edit para ela?
Alguém já fez isso???
Como faço?
Obrigada
Barbara.michele
Curtir tópico
+ 0
Responder
Posts
31/08/2004
Lucas Silva
// faça assim:
coloque os parâmetros com like tipo:
codigo like :parcod and cliente like :parcli
e por ai vai... se não tiver nenhum valor você coloca o ¬.
coloque os parâmetros com like tipo:
codigo like :parcod and cliente like :parcli
e por ai vai... se não tiver nenhum valor você coloca o ¬.
Responder
31/08/2004
Paulo_amorim
Olá
Você tem diversas opções, todas relacionadas com a construção da instrução SQL
Dou a sugestão de 3 tipos:
1- Monte sua cláusula Where com if´s para cada parâmetro
O problema eh se vc não tiver nenhum parâmetro fixo
2- Utilize operador AND
E depois passe o parametro p1, p2 com:
Me parece o mais ´limpo´, mas eu não lembro se eh exatamente assim
3- Utilizar 2 operadores, um OR e um AND
Esse funciona mesmo que eu lembro :)
Esse método dá pra vc passar com where ((:p1 = 0) or (:p1 = 1 and condicao) ), daí vai de você...
Espero que ajude
Até+
Você tem diversas opções, todas relacionadas com a construção da instrução SQL
Dou a sugestão de 3 tipos:
1- Monte sua cláusula Where com if´s para cada parâmetro
with Query1 do begin SQL.Add(´SELECT * FROM cliente WHERE cliente LIKE :param´); if Checkbox1.Checked then SQL.ADD(´AND condicao1´); if Checkbox2.Checked then SQL.ADD(´AND condicao2´); end;
O problema eh se vc não tiver nenhum parâmetro fixo
2- Utilize operador AND
SELECT * FROM cliente WHERE (:p1 AND condicao1) AND (:p2 AND condicao2)
E depois passe o parametro p1, p2 com:
Query1.Parambyname(´p1´).AsBoolean := Checkbox1.Checked;
Me parece o mais ´limpo´, mas eu não lembro se eh exatamente assim
3- Utilizar 2 operadores, um OR e um AND
SELECT * FROM cliente WHERE ( (:p1 = FALSE) OR (:p1 = TRUE AND condicao1) ) AND( (:p2 = FALSE) OR (:p2 = TRUE AND condicao2) )
Esse funciona mesmo que eu lembro :)
Esse método dá pra vc passar com where ((:p1 = 0) or (:p1 = 1 and condicao) ), daí vai de você...
Espero que ajude
Até+
Responder
Clique aqui para fazer login e interagir na Comunidade :)