Fórum DBGrid e Pesquisa em Banco #427400
28/10/2012
0
Tenho um DBGrid e os campos para busca dos dados, porem quando eu pesquiso por um nome exemplo João, ele seleciona
o nome no DBGrid corretamente, porém, mostra tudo o que existe na tabela, e eu gostaria que mostrasse só os clientes que possuem o nome semelhante.
Alguém ajuda?
Sublixo
Curtir tópico
+ 0Posts
28/10/2012
Valdecir Peres
Sublixo,
Tenta assim
procedure TFmCadReceb.BTpesqCLClick(Sender: TObject);
begin
TClientDataSet(Ds.DataSet).Close;
TClientDataSet(Ds.DataSet).CommandText := ('SELECT * FROM NOME DA TABELA WHERE NOME DO CLENTE like'+QuotedStr ('%'+ Edit3.Text + '%')+'Order By NOME DO CLIENTE ');
TClientDataSet(Ds.DataSet).Open;
end;
Abraço
Gostei + 0
28/10/2012
Sublixo
Sublixo,
Tenta assim
procedure TFmCadReceb.BTpesqCLClick(Sender: TObject);
begin
TClientDataSet(Ds.DataSet).Close;
TClientDataSet(Ds.DataSet).CommandText := ('SELECT * FROM NOME DA TABELA WHERE NOME DO CLENTE like'+QuotedStr ('%'+ Edit3.Text + '%')+'Order By NOME DO CLIENTE ');
TClientDataSet(Ds.DataSet).Open;
end;
Abraço
Tentei do jeito ai que vc mostrou e ainda não da certo
estou usando um SQLConnection um SimpleDataSet e um DataSource, Coloquei um SQLQuery pra ver se me ajudava e msm assim nao adianta.
Gostei + 0
28/10/2012
Claudia Nogueira
1 componente SQLQuery com nome SQLQuery1, pode deixar a propriedade SQL em branco;
1 componente DataSetProvider, com a propriedade DataSet = SQLQuery1 e com a propriedade poAlowCommandText do options = True;
1 componente ClientDataSet com nome ClientDataSet1, com a propriedade ProviderName = DataSetProvider1;
1 componente DataSource com nome DataSource1, com a propriedade DataSet = ClientDataSet1;
1 dbgrid com a propriedade DataSource = DataSource1;
1 edit;
1 botão e no onClick do botão o seguinte código:
ClientDataSet1.Close;
ClientDataSet1.CommandText := 'SELECT * FROM TABELA WHERE NOME LIKE :NOME ORDER BY NOME';
ClientDataSet1.Params.ParamByName('NOME').AsString := '%' + Edit1.Text + '%';
ClientDataSet1.Open;
Obs.: como não sei o nome da tabela nem os campos, você tem que trocar ali na senteça SQL pelos nomes corretos.
Gostei + 0
29/10/2012
Sublixo
1 componente SQLQuery com nome SQLQuery1, pode deixar a propriedade SQL em branco;
1 componente DataSetProvider, com a propriedade DataSet = SQLQuery1 e com a propriedade poAlowCommandText do options = True;
1 componente ClientDataSet com nome ClientDataSet1, com a propriedade ProviderName = DataSetProvider1;
1 componente DataSource com nome DataSource1, com a propriedade DataSet = ClientDataSet1;
1 dbgrid com a propriedade DataSource = DataSource1;
1 edit;
1 botão e no onClick do botão o seguinte código:
ClientDataSet1.Close;
ClientDataSet1.CommandText := 'SELECT * FROM TABELA WHERE NOME LIKE :NOME ORDER BY NOME';
ClientDataSet1.Params.ParamByName('NOME').AsString := '%' + Edit1.Text + '%';
ClientDataSet1.Open;
Obs.: como não sei o nome da tabela nem os campos, você tem que trocar ali na senteça SQL pelos nomes corretos.
Obrigado pela ajuda, funcionou! Este fórum é nota 101
Gostei + 0
30/10/2012
Sublixo
Gostei + 0
30/10/2012
Claudia Nogueira
Faz um teste aí. Coloca só SimpleDataSet e o DataSource e no botão o seguinte código:
SimpleDataSet1.Close;
SimpleDataSet1.DataSet.Close;
SimpleDataSet1.DataSet.CommandText := 'SELECT * FROM TABELA WHERE NOME LIKE :NOME ORDER BY NOME';
SimpleDataSet1.DataSet.Params.ParamByName('NOME').AsString := '%' + Edit1.Text + '%';
SimpleDataSet1.DataSet.Open;
SimpleDataSet1.Open;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)