consulta em dois edit's usando adoquery
Olá, esse é minha primeira vez aqui no fórum :d
Estou tentando fazer um pesquisa mas não está dando certo...
Tenho essa tela de pesquisa e esse código no adoquery...
Estou usando o seguinte código no evento OnChange dos edit's
if edtConsultar.Text <> '' then
begin
qryGrid.Close;
qryGrid.Parameters.ParamByName('processo').Value := edtConsultar.Text;
qryGrid.Open;
end
else
begin
qryGrid.Close;
end;
O mesmo código para os dois edit's (alterando somente os nomes dos componentes, lógico)
A consulta está sendo feita, porém, quando eu pesquiso o processo primeiro ele pesquisa certinho,
aí quando eu mudo para o outro edit e digito algo para pesquisar ele me retorna um monte de dados
que eu não pesquisei (geralmente dados pesquisado no edit anterior)...
a mesma coisa acontece se eu começar a pesquisar no edit de baixo, ele dá certo, mas quando passo
para o edit de cime me retorna uma pesquisa imprecisa...
Grato...
Estou tentando fazer um pesquisa mas não está dando certo...
Tenho essa tela de pesquisa e esse código no adoquery...
Estou usando o seguinte código no evento OnChange dos edit's
if edtConsultar.Text <> '' then
begin
qryGrid.Close;
qryGrid.Parameters.ParamByName('processo').Value := edtConsultar.Text;
qryGrid.Open;
end
else
begin
qryGrid.Close;
end;
O mesmo código para os dois edit's (alterando somente os nomes dos componentes, lógico)
A consulta está sendo feita, porém, quando eu pesquiso o processo primeiro ele pesquisa certinho,
aí quando eu mudo para o outro edit e digito algo para pesquisar ele me retorna um monte de dados
que eu não pesquisei (geralmente dados pesquisado no edit anterior)...
a mesma coisa acontece se eu começar a pesquisar no edit de baixo, ele dá certo, mas quando passo
para o edit de cime me retorna uma pesquisa imprecisa...
Grato...
Klaus
Curtidas 0
Respostas
Nigro
03/06/2011
Basicamente no seu exemplo você tem dois parâmetros, mas nos seus fontes o outro parâmetro não é citado.
qryGrid.Close;
if edtConsultar.Text <> '' then
qryGrid.Parameters.ParamByName('processo').Value := edtConsultar.Text;
if edtProcesso.Text <> '' then
qryGrid.Parameters.ParamByName('processo').Value := edtConsultar.Text;
qryGrid.Open;
GOSTEI 0
Emerson Nascimento
03/06/2011
os dois campos de pesquisa podem ser usados simultaneamente?
se puderem ser usados simultaneamente:
cSQL := 'select * from controle';
cCondicao := '';
if edtConsultar.Text <> '' then
cCondicao := cCondicao + 'processo like '+QuotedStr('%'+edtConsultar.Text+'%');
if edtExecutado.Text <> '' then
begin
if cCondicao <> '' then cCondicao := cCondicao + ' and ';
cCondicao := cCondicao + 'executado like '+QuotedStr('%'+edtExecutado.Text+'%');
end;
if cCondicao <> '' then
cSQL := cSQL + ' where ' + cCondicao;
qryGrid.Close;
qryGrid.SQL.Text := cSQL;
qryGrid.Open;
se puder ser pesquisado somente um dos campos:
cSQL := 'select * from controle';
if edtConsultar.Text <> '' then
cSQL := cSQL + ' where processo like '+QuotedStr('%'+edtConsultar.Text+'%');
else
if edtExecutado.Text <> '' then
cSQL := cSQL + ' where executado like '+QuotedStr('%'+edtExecutado.Text+'%');
qryGrid.Close;
qryGrid.SQL.Text := cSQL;
qryGrid.Open;
se puderem ser usados simultaneamente:
cSQL := 'select * from controle';
cCondicao := '';
if edtConsultar.Text <> '' then
cCondicao := cCondicao + 'processo like '+QuotedStr('%'+edtConsultar.Text+'%');
if edtExecutado.Text <> '' then
begin
if cCondicao <> '' then cCondicao := cCondicao + ' and ';
cCondicao := cCondicao + 'executado like '+QuotedStr('%'+edtExecutado.Text+'%');
end;
if cCondicao <> '' then
cSQL := cSQL + ' where ' + cCondicao;
qryGrid.Close;
qryGrid.SQL.Text := cSQL;
qryGrid.Open;
se puder ser pesquisado somente um dos campos:
cSQL := 'select * from controle';
if edtConsultar.Text <> '' then
cSQL := cSQL + ' where processo like '+QuotedStr('%'+edtConsultar.Text+'%');
else
if edtExecutado.Text <> '' then
cSQL := cSQL + ' where executado like '+QuotedStr('%'+edtExecutado.Text+'%');
qryGrid.Close;
qryGrid.SQL.Text := cSQL;
qryGrid.Open;
GOSTEI 0
Klaus
03/06/2011
Obrigado Emerson, deu certinho cara!! :D
GOSTEI 0