Fórum Pesquisa só funciona a primeira vez #474628
31/03/2014
0
Tenho um botão pesquisa que funciona direitinho a primeira vez que é usado. Ao limpar e pesquisar novamente, ele não funciona mais (as vezes não aparece nada, as vezes aparece apenas um registro, onde de fato deveria aparecer mais... é meio imprevisível). Então, tenho que fechar o programa e abri-lo novamente para que ele pesquise corretamente.
estou usando um SQLConnection, SQLDataset, DataSetProvider, ClientDataSet...
segue o código... se alguém puder me ajudar, agradeço imensamente!
procedure TFLocalizar.BitBtnLocalizarClick(Sender: TObject);
begin
DataModule1.ClientDataset1.Active := False;
DataModule1.ClientDataset1.Params[0].AsString := Edit1.Text + '%';
DataModule1.ClientDataset1.Active := True;
BitBtnok.Enabled := not DataModule1.ClientDataset1.IsEmpty;
if DataModule1.ClientDataSet1.IsEmpty then
StsBr.SimpleText := Format ('Nenhum registro foi encontrado com ' + '"%s"', [Edit1.Text])
else
StsBr.SimpleText := Format ('%d registro encontrado com ' + '"%s"', [DataModule1.ClientDataSet1.RecordCount, Edit1.Text]);
end;
no SQLDataset ...
select * from CAD_PACIENTE
Where CNS like :Pcns
Muito obrigada
Laya Lessa
Curtir tópico
+ 0Posts
31/03/2014
Thiago Irrazabal
DataModule1.ClientDataset1.FetchParams;
Ficaria assim:
procedure TFLocalizar.BitBtnLocalizarClick(Sender: TObject);
begin
DataModule1.ClientDataset1.Active := False;
DataModule1.ClientDataset1.FetchParams;
DataModule1.ClientDataset1.Params[0].AsString := Edit1.Text + '%';
DataModule1.ClientDataset1.Active := True;
BitBtnok.Enabled := not DataModule1.ClientDataset1.IsEmpty;
if DataModule1.ClientDataSet1.IsEmpty then
StsBr.SimpleText := Format ('Nenhum registro foi encontrado com ' + '"%s"', [Edit1.Text])
else
StsBr.SimpleText := Format ('%d registro encontrado com ' + '"%s"', [DataModule1.ClientDataSet1.RecordCount, Edit1.Text]);
end;
Teste e veja se funciona.
Att,
Thiago Irrazabal de Oliveira.
Gostei + 0
31/03/2014
Laya Lessa
Gostei + 0
01/04/2014
Thiago Irrazabal
Att,
Thiago Irrazabal de Oliveira.
Gostei + 0
01/04/2014
Laya Lessa
Muito obrigada pela atenção
Gostei + 0
01/04/2014
Thiago Irrazabal
Att,
Thiago Irrazabal de Oliveira.
Gostei + 0
01/04/2014
Laya Lessa
meu email: lais_ayache@hotmail.com
Gostei + 0
05/04/2014
Mauricio Rodrigues
if ((cbxField.Text <> EmptyStr) and (edtValor.Text <>EmptyStr)) then
begin
ds.DataSet.Filter:='UPPER('+ Ds.DataSet.Fields[ListaField[cbxField.ItemIndex]].FieldName +') like '+QuotedStr(UpperCase(edtValor.text)+'%');
Ds.DataSet.Filtered:=true;
if not Ds.DataSet.Active then
ds.DataSet.Open;
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)