Pesquisar (Montar um Select)
30/01/2006
0
eh o seguinte muito jah devem conhecer o metodo do kumon(para quem naum conhece eh tipo aula particular) entaum oq eles estaum precisando eh o seguinte
lah eles tem aula de Portugues Matematica e Ingles
tenho no meu form de pesquisa o seguinte
um edit para pesquisar pelo nome e 3 checkbox
o pesquisa eh a seguinte
c eu por o primeiro nome do aluno e ticar duas materias por exemplo
(
Nome
Lucas
materias
Portugues
matematica
)
quero todos os lucas que faze matematica e portugues
ou se eu por assim
(
Nome
Lucas
materias
Portugues
)
quero todos os lucas que fazem apenas portugues
ou se eu naum colocar o nome e apenas colocar as materias eu quero apenas os alunas que fazem as materias selecionadas naum pode fazer uma ou fazer a outra ..tem q fazer as duas selecionadas...
acredito q naum seja muito dificil...pq o meu maior problema eh com o sql mesmo
o meu banco eh em interbase
eu estou usando o ibdataset
a minha tabela chama Ficha
e os campos saum
Nome
matematica
portugues
ingles
vlw pela força pessoal
lah eles tem aula de Portugues Matematica e Ingles
tenho no meu form de pesquisa o seguinte
um edit para pesquisar pelo nome e 3 checkbox
o pesquisa eh a seguinte
c eu por o primeiro nome do aluno e ticar duas materias por exemplo
(
Nome
Lucas
materias
Portugues
matematica
)
quero todos os lucas que faze matematica e portugues
ou se eu por assim
(
Nome
Lucas
materias
Portugues
)
quero todos os lucas que fazem apenas portugues
ou se eu naum colocar o nome e apenas colocar as materias eu quero apenas os alunas que fazem as materias selecionadas naum pode fazer uma ou fazer a outra ..tem q fazer as duas selecionadas...
acredito q naum seja muito dificil...pq o meu maior problema eh com o sql mesmo
o meu banco eh em interbase
eu estou usando o ibdataset
a minha tabela chama Ficha
e os campos saum
Nome
matematica
portugues
ingles
vlw pela força pessoal
$grandaum$
Curtir tópico
+ 0
Responder
Posts
30/01/2006
Okama
Você tem duas condições iniciais: 1-Nome 2-Matérias
Primeiro verifique se o nome foi digitado e monte o primeiro select. Se não foi monte o segundo select:
Considerando que sua tabela está estruturada como
Nome Varchar
Portugues Int
matematica int
Ingles Int
e a seleção de cada matéria é feita por 0 e 1 nos campos:
Separei os procedimentos para ficar mais enxuto o código, você pode fazer no mesmo procedimento controlando a variável ´Materia´ para inserir a clausula ´where´ ou ´add´
Primeiro verifique se o nome foi digitado e monte o primeiro select. Se não foi monte o segundo select:
if EditNome.text <> ´´ then MONTA_SELECT1 else MONTA_SELECT2
Considerando que sua tabela está estruturada como
Nome Varchar
Portugues Int
matematica int
Ingles Int
e a seleção de cada matéria é feita por 0 e 1 nos campos:
Procedure MONTA_SELECT1 //Com nome digitado begin IBDataSet1.SelectSQL.text := ´Select * from tabela where nome = ´+QuotedStr( Trim( EditNome.text ) ); if CheckBoxPort.checked then IBDataSet1.SelectSQL.add(´ and Portugues = 1 ´); if CheckBoxMat.checked then IBDataSet1.SelectSQL.add(´ and Matematica = 1 ´); if CheckBoxIng.checked then IBDataSet1.SelectSQL.add(´ and Ingles = 1 ´); end;
Procedure MONTA_SELECT2 //Sem nome digitado Var Materia : Boolean; begin IBDataSet1.SelectSQL.text := ´Select * from tabela ´; Materia := False; if CheckBoxPort.checked then begin IBDataSet1.SelectSQL.add(´ where Portugues = 1 ´); Materia := True; end; if CheckBoxMat.checked then if Materia then IBDataSet1.SelectSQL.add(´ and Matematica = 1 ´) else begin IBDataSet1.SelectSQL.add(´ where Matematica = 1 ´); Materia := True; end; if CheckBoxIng.checked then if Materia then IBDataSet1.SelectSQL.add(´ and Ingles = 1 ´) else IBDataSet1.SelectSQL.add(´ where Ingles = 1 ´); end;
Separei os procedimentos para ficar mais enxuto o código, você pode fazer no mesmo procedimento controlando a variável ´Materia´ para inserir a clausula ´where´ ou ´add´
Responder
Clique aqui para fazer login e interagir na Comunidade :)