Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
rockout Novato

Registrado: Terça-Feira, 18 de Julho de 2006 Mensagens: 2
|
Enviada: Seg Dez 18, 2006 5:00 pm Assunto: Parâmetros "DINÂMICO" em SQL |
|
|
Bom pessoal esse é o meu 1º post, e a minha dúvida eh a seguinte
estou fazendo um programa para cadastro de alunos e tenho que relaciona-los com vagas de emprego que sejam iguais ao seu perfil
bom, o usuário cadastra todos os dados do aluno, da empresa e as vagas dessa empresa.
tenho uma tela de pesquisa com vários combos, ex: sexo, escolaridade, carteira de motorista.......
entaum o programa tem q buscar o aluno q se encaixe nos itens selecionados nos combos.
eu fiz dessa forma:
SELECT
Alunos.AL_NOMALU
FROM
Alunos
Where
((Alunos.AL_SEXO = :SexoAlu AND Alunos.AL_ESCALU = :EscAlu AND Alunos.AL_COMINC = :ComIncAlu AND Alunos.AL_ESTCIV = :EstCivALu AND Alunos.AL_TIPCAR = :TipCarAlu)
ORDER BY
Alunos.AL_NOMALU
e coloquei esse comando num botão
Qu_Pesquisa.close;
Qu_Pesquisa.ParamByName('SexoAlu').AsString := Cbox_Sexo.Text;
Qu_Pesquisa.ParamByName('EscAlu').AsString := Cbox_Escolaridade.Text;
Qu_Pesquisa.ParamByName('ComIncAlu').AsString := Cbox_ComInc.Text;
Qu_Pesquisa.ParamByName('EstCivALu').AsString := Cbox_EstCivil.Text;
Qu_Pesquisa.ParamByName('TipCarAlu').AsString := Cbox_CarMot.Text;
Qu_Pesquisa.Open;
dessa maneira funciona ele me traz os alunos q tem as descrições dos combos, mas eu queria q o usuario não precisasse selecionar todos os combos, somente um ou dois (sexo e escolaridade).
Portanto eu queria saber se existe alguma maneira que se algum parametro"Qu_Pesquisa.ParamByName('SexoAlu').AsString := Cbox_Sexo.Text" tivesse um valor NULO a SQL me traga os outros parâmetros menos os q estiver em branco.
desde já agradeço pela ajuda de todos |
|
Voltar ao Topo |
|
 |
thomazs Moderador


Registrado: Segunda-Feira, 1 de Março de 2004 Mensagens: 2835
|
Enviada: Seg Dez 18, 2006 7:52 pm Assunto: |
|
|
coloque o comando sql de acordo com os combos:
Código: |
with Qu_Pesquisa do begin
close;
SQL.Clear;
SQL.Add('SELECT Alunos.AL_NOMALU FROM Alunos Where 1=1 ');
if comboSexo.ItemIndex >=0 then
SQL.Add('AND Sexo = :Sexo');
if comboSexo.ItemIndex >=0 then
ParamByName('SEXO').AsString := comboSexo.Text;
Open;
end;
|
_________________ Suporte e Consultoria em Desenvolvimento de Sistemas
Bacharel em Sistemas de Informação
Especialista em Bancos de Dados
Desenvolvimento: Clipper, Delphi, PHP, Python/Django |
|
Voltar ao Topo |
|
 |
rockout Novato

Registrado: Terça-Feira, 18 de Julho de 2006 Mensagens: 2
|
Enviada: Ter Dez 19, 2006 8:07 am Assunto: |
|
|
thomazs escreveu: | coloque o comando sql de acordo com os combos:
Código: |
with Qu_Pesquisa do begin
close;
SQL.Clear;
SQL.Add('SELECT Alunos.AL_NOMALU FROM Alunos Where 1=1 ');
if comboSexo.ItemIndex >=0 then
SQL.Add('AND Sexo = :Sexo');
if comboSexo.ItemIndex >=0 then
ParamByName('SEXO').AsString := comboSexo.Text;
Open;
end;
|
|
vlw thomazs, muito obrigado pela ajuda.
ainda não testei, mas é uma boa solução e com certeza vai ficar melhor do q a q eu fiz |
|
Voltar ao Topo |
|
 |
|